
#11581: TypeError requires UndecidableInstances unnecessarily -------------------------------------+------------------------------------- Reporter: rwbarton | Owner: Type: feature request | Status: new Priority: low | Milestone: Component: Compiler (Type | Version: 8.0.1-rc2 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: GHC rejects | Test Case: indexed- valid program | types/should_compile/T11581 Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by rwbarton): What exactly is the plan, though? This doesn't work even after a008eadf: {{{#!hs {-# LANGUAGE TypeFamilies, TypeInType, RankNTypes #-} module Arity where import GHC.Types import GHC.TypeLits hiding (TypeError) type family TypeError :: forall b. ErrorMessage -> b where {} type family T (a :: Type) :: Type where T t = TypeError (ShowType t) }}} {{{ rwbarton@morphism:/tmp$ ~/ghc-newest/inplace/bin/ghc-stage2 -fprint- explicit-kinds Arity.hs [1 of 1] Compiling Arity ( Arity.hs, Arity.o ) Arity.hs:10:3: error: • The type family application ‘TypeError Type’ is no smaller than the instance head (Use UndecidableInstances to permit this) • In the equations for closed type family ‘T’ In the type family declaration for ‘T’ }}} So I hope the plan involves changing the calculation of the arity of a type family to not include kind arguments that only appear in the result kind of the type family, or something like that. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11581#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler