Equality constraint type mismatch
red5_2 at hotmail.com
Mon Mar 8 14:23:18 EST 2010
(Hotmail is again swallowing newlines--sorry for the re-post)
I see. The type inference algorithm requires type variables to be
type constructors, not functions. Equality constraints are
simplified assuming that is the case. I knew that type
functions had to be fully applied, but I didn't know that they also
couldn't be "taken apart" by unification. This explains why the
following doesn't typecheck:
type family T a :: *
my_id :: f a -> f a; my_id = id
x :: T a -> T a; x = my_id
IMHO, this was not clear from the documentation or from the error
message (It certainly _looks_ like "T a" should match "f a"...).
Thanks for the explanation.
Hotmail: Trusted email with powerful SPAM protection.
More information about the Glasgow-haskell-users