[Haskell-cafe] OOP'er with (hopefully) trivial questions.....
Nicholls, Mark
Nicholls.Mark at mtvne.com
Mon Dec 17 10:40:05 EST 2007
No neither do I....I think we can drop that bit....I think I got
confused about it for a second.....not unsurprisingly.
________________________________
From: Brent Yorgey [mailto:byorgey at gmail.com]
Sent: 17 December 2007 15:38
To: Nicholls, Mark
Cc: Thomas Davie; Haskell Cafe
Subject: Re: [Haskell-cafe] OOP'er with (hopefully) trivial
questions.....
On Dec 17, 2007 8:04 AM, Nicholls, Mark <Nicholls.Mark at mtvne.com> wrote:
No that's fine....its all as clear as mud!......but that's not your
fault.
To recap...
"type" introduces a synonym for another type, no new type is
created....it's for readabilities sake.
"Newtype" introduces an isomorphic copy of an existing type...but
doesn't copy it's type class membership...the types are
disjoint/distinct but isomorphic (thus only 1 constructor param).
"data" introduces a new type, and defines a composition of existing
types to create a new one based on "->" and "(".
"class" introduces a constraint that any types declaring themselves to
be a member of this class...that functions must exist to satisfy the
constraint.
I'm sure that's wrong, but it's a good as I've got at the moment.
And to a degree it's all upside down....what Haskell thinks are
types...I think are "singnatures" and what Haskell thinks is a type
"class" I think of as a type.....it's not going to be easy.
I think you've got it pretty well! The one quibble I would have with
your recap is that I'm not sure what you mean by saying that "data"
creates a new type 'based on "->" and "("'. Other than that it seems
pretty spot-on. =)
-Brent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20071217/55f99ef7/attachment.htm
More information about the Haskell-Cafe
mailing list