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 <g...@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 >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe