
#14111: strange error when using data families with levity polymorphism and unboxed sums and data families -------------------------------------+------------------------------------- Reporter: carter | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: TypeFamilies Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by goldfire): I don't think you mean
Instantiate the head shape with fresh unification variables
I think you meant * Instantiate the return type with fresh unification variables That is, we don't want the unification variables in the head shape (that is, type patterns), but in the data constructor type. Actually, we already do your version of instantiation, in kind checking. See `TcTyClsDecls.kcDataDefn` and `TcTyClsDefls.tc_fam_ty_pats`. But we don't want to do it ''again'' when checking data constructors. If I understand correctly, this instantiate-and-unify would replace the call to `tcMatchTy` in `rejigConRes`. The kind coercion is easy to dispatch: it will always be reflexive, because the kind of a fully-applied tycon is always `Type`. This always-reflexive property doesn't mean the unification is useless, of course, as it will unify metavariables. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14111#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler