[Haskell-cafe] confusion about 'instance'....
jules at jellybean.co.uk
Thu Jan 10 09:22:06 EST 2008
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.
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.
More information about the Haskell-Cafe