Too many type binders [GHC-05989]
Language extension: StandaloneKindSignatures
This error means that a type constructor is declared with more arguments than are specified in a corresponding standalone kind signature.
Examples
Mismatched data declaration
Error Message
Main.hs:5:1: error: [GHC-05989]
• Not a function kind: *
but extra binders found: y
• In the data type declaration for ‘A’
|
5 | data A x y
| ^^^^^^^^^^
Explanation
This example declares A to have kind * -> *, meaning it is a type
constructor that takes one argument. However, the data declaration for A has
two arguments (x and y), so it does not match the kind signature.
This can be fixed by either updating the data declaration to match the kind
signature (by removing the argument y) or updating the kind signature to match
the data declaration (by adding an argument of kind *).
Main1.hs
Before
module Main1 where
type A :: * -> *
data A x y
After
module Main1 where
type A :: * -> *
data A x = A x
Main2.hs
Before
module Main2 where
type A :: * -> *
data A x y
After
module Main2 where
type A :: * -> * -> *
data A x y = A x y