[Haskell-cafe] Data & newtype differences. Today: strictness

Yves Parès yves.pares at gmail.com
Sun Jan 22 15:23:51 CET 2012


Big sum up of everything:

If TestN is a newtype constructor, then
'TestN undefined' and 'undefined' are exactly the same thing.


2012/1/22 Yitzchak Gale <gale at sefer.org>

> Yves Parès wrote:
> >> Is there some litterature expliciting in a less empiric way than I did
> the
> >> differences like this between data and newtype? I've never come against
> >> such documentation through all my learning of Haskell, yet I think it's
> an
> >> important point.
>
> Roman Cheplyaka wrote:
> > See the Haskell report, section 3.17.2 "Informal Semantics of Pattern
> > Matching" [1].
>
> And section 4.2.3 of the report [2] addresses exactly your points very
> explicitly:
>
> "A type created by newtype differs from an algebraic datatype in that...
> The following examples clarify the differences between data
> (algebraic datatypes), type (type synonyms), and newtype
> (renaming types)..."
>
> Regards,
> Yitz
>
> [1]
> http://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-600003.17.2
> [2]
> http://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-740004.2.3
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120122/03868159/attachment.htm>


More information about the Haskell-Cafe mailing list