Skip to content

Allow kinds of associated types to depend on earlier associated types

GHC rejects the following code:

class C t where
    type K t :: Type
    type T t :: K t -> Type

    m :: t -> T t a

with this error message

    • Type constructor ‘K’ cannot be used here
        (it is defined and used in the same recursive group)
    • In the kind ‘K t -> Type’

See e-mail discussion. This is connected to #12088 (closed), at least as far as defining instances of C.

Trac metadata
Trac field Value
Version 8.0.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information