[Haskell-cafe] confusion about 'instance'....
Nicholls, Mark
Nicholls.Mark at mtvne.com
Thu Jan 10 09:41:13 EST 2008
> -----Original Message-----
> From: Jules Bean [mailto:jules at jellybean.co.uk]
> Sent: 10 January 2008 14:22
> To: Nicholls, Mark
> Cc: Bulat Ziganshin; haskell-cafe at haskell.org
> Subject: Re: [Haskell-cafe] confusion about 'instance'....
>
> 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?
The packet labelled "type class"....you're from .co.uk....you should
understand my English idioms. :-)
>
> Classes are not types.
Yep.
>
> Classes are groups of types. Sets of types. Classifications of types.
I had them down as an n-ary relation on types....someone's said
something somewhere that's made me question that...but I think I
misinterpreted them....so I may default back to n-ary relation.
>
> For any type, you can ask the quesiton "is this type a member of this
> class, or not?"
yep
>
> 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".
Hmmm...I'm not sure that helps....it may just make me more confused.
>
> So you might say this has the type "a -> b -> a", providing that a is
a
> Num and b is an Eq.
>
> Jules
More information about the Haskell-Cafe
mailing list