
#13774: Singletons code fails to typecheck when type signature involving type family is added -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler (Type | Version: 8.0.1 checker) | Keywords: FunDeps, Resolution: invalid | TypeFamilies Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by simonpj): * status: new => closed * resolution: => invalid Comment: Your type signature {{{ sT2 :: Sing (L2r 'False) }}} means {{{ sT2 :: forall k. Sing k (L2r Bool k 'False) }}} And, since `k` is universally quantified, we can't unify it with `Nat`. So the instance doesn't match. You can fix it thus {{{ sT2 :: Sing (L2r 'False :: Nat) }}} which indeed compiles fine. I'm not sure what other error message would be better. I'll close as invalid for now. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13774#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler