Nicholls, Mark wrote:
My confusion is not between OO classes and Haskell classes, but exactly
are the members of a Haskell type class...I'd naively believed them to
be types (like it says on the packet!)...but now I'm not so sure.
Which packet?
Classes are not types.
Classes are groups of types. Sets of types. Classifications of types.
For any type, you can ask the quesiton "is this type a member of this
class, or not?"
Without wishing to split hairs too finely, I find it a useful intuition
not to consider the class context "part of the type" somehow.
So, when you see this:
(Num a, Eq b) => a -> b -> a
Rather than thinking of that whole thing as a type, it helps to think of
the part on the right of the => as the 'actual type' and the part on the
left of the => as "some extra constraints on the type".
So you might say this has the type "a -> b -> a", providing that a is a
Num and b is an Eq.
Jules
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe