PR Stanley wrote:
Hi
What is the difference between

    data T0 f a = MkT0 a
    instance Eq (T0 f a) where ...

        and

    data T0 f a = MkT0 a
    instance Eq a => Eq (T0 f a) where ...

The second one says that "TO f a" is only an instance of "Eq" if "a" is, while the first says that "TO f a" is an instance regardless of the type of its arguments.


You can regard an "instance" declaration as an inference rule for the type checker, with "=>" meaning "implies" (though I don't think its the answer to your other question about names).
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to