
24 Feb
2009
24 Feb
'09
2:41 p.m.
Derek Gladding wrote:
Please forgive me if I'm still mentally contaminated by the OO way of seeing (and discussing) the universe, but I'm trying to figure out how to "inherit an interface" from a multi-parameter type class. [...] but this isn't allowed (kind mismatch).
Kinds are a meta-type system for types. Because Haskell has such a rich type system, the types themselves need a type-like system. These are "kinds". You never declare kinds (apart from certain language extensions not in use here): the compiler infers them. This suggests that your problem is in the types lower down. Probably you are using "a" or "b" in a way that implies they take a type argument in one place (kind * -> *) and not in another place (kind *).