[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