
#11581: TypeError requires UndecidableInstances unnecessarily -------------------------------------+------------------------------------- Reporter: rwbarton | Owner: Type: feature | Status: new request | Priority: low | Milestone: Component: Compiler | Version: 8.0.1-rc2 (Type checker) | Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- The example from the `TypeError` documentation {{{ type family ByteSize x where ByteSize Word16 = 2 ByteSize Word8 = 1 ByteSize a = TypeError (Text "The type " :<>: ShowType a :<>: Text " is not exportable.") }}} requires `UndecidableInstances`: {{{ BS.hs:11:5: error: • The type family application ‘(TypeError ...)’ is no smaller than the instance head (Use UndecidableInstances to permit this) • In the equations for closed type family ‘ByteSize’ In the type family declaration for ‘ByteSize’ }}} Obviously there's no real danger of undecidability here. I tried changing the declaration of `TypeError` to {{{ type family TypeError :: ErrorMessage -> b where }}} but it didn't help. Same error. Is that a bug? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11581 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler