#7916: PolyKinds without type signatures ----------------------------------------+----------------------------------- Reporter: monoidal | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type checker) | Version: 7.7 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: GHC rejects valid program Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ----------------------------------------+----------------------------------- Comment(by simonpj@…): commit ce89bdecac936bff9378b60f156d8c560c3c1380 {{{ Author: Simon Peyton Jones <simonpj@microsoft.com> Date: Tue May 21 12:29:54 2013 +0100 Simplify kind generalisation, and fix Trac #7916 A buglet that exposed an opportunity for some welcome refactoring and simplification. Main changes * TcMType.zonkQuantifiedTyVars is replaced by quantifyTyVars, which does a bit more zonking (so that its clients do not need to) * TcHsType.kindGeneralise becomes a bit simpler, and hands off to quantifyTyVars * A bit of simplification of the hacky code in TcTyClsDcls.tcConDecl, where we figure out how to generalise the data constructor's type * Improve the error message from badExistential when a constructor has an existential type, by printing the offending type * Some consequential simplification in simplifyInfer. compiler/basicTypes/VarSet.lhs | 4 +- compiler/typecheck/TcHsType.lhs | 22 +-- compiler/typecheck/TcMType.lhs | 324 +++++++++++++++++++---------------- compiler/typecheck/TcRules.lhs | 14 +- compiler/typecheck/TcSimplify.lhs | 66 +++----- compiler/typecheck/TcSplice.lhs | 9 +- compiler/typecheck/TcTyClsDecls.lhs | 58 +++--- compiler/utils/UniqSet.lhs | 3 + 8 files changed, 254 insertions(+), 246 deletions(-) }}} -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7916#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler