[Haskell-cafe] Question on kind inference
Claus Reinke
claus.reinke at talk21.com
Sun May 31 05:44:02 EDT 2009
> -----------------------------------------------
> class A a where
> foo :: a b
>
> class B a
>
> class (A a, B a) => C a
> -----------------------------------------------
>
> GHC compiles it without errors, but Hugs rejects it: "Illegal type in
> class constraint".
The error message is horribly uninformative.
> What is the correct behavior, and which part of the haskell 98 report
> explains this?
4.6 Kind Inference, combined with 4.5(.1) dependency analysis.
My interpretation: 'A' and 'B' are not in the same dependency group,
so 'a's kind in 'B' defaults to '*', so 'C' is ill-kinded. Try moving 'B'
into a separate module to get the same effect in GHC (which, in the
single-module case, uses 'A' and 'C' to determine the kind of 'B's 'a').
Claus
More information about the Haskell-Cafe
mailing list