[Haskell-cafe] Haskell 2010 report nit?

Viktor Dukhovni ietf-dane at dukhovni.org
Mon Dec 16 07:36:48 UTC 2019



> On Dec 16, 2019, at 2:32 AM, Tom Ellis <tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk> wrote:
> 
>>> These examples illustrate the difference in pattern matching between types defined by data and newtype:
>>> 
>>> (\  (N True) -> True) ⊥     ⇒    ⊥
>>> (\  (D True) -> True) ⊥     ⇒    ⊥
>>> (\ ~(D True) -> True) ⊥     ⇒    True
>>> 
>>> Additional examples may be found in Section 4.2.3.
>> 
>> But unlike the examples in 4.2.3, which do show differences
>> between "newtype" and "data", the above does not seem to
>> show any actual difference.  For that the pattern after the
>> constructor would I believe have to be irrefutable, which
>> "True" is not.
> 
> I think what you're saying is that this doesn't show a difference because
> 
>    (\ ~(N True) -> True) ⊥     ⇒    True

Yes, because of that, and also because even if it were otherwise, it is
not one of the examples. :-(  But indeed the expressions used in the
examples behave indistinguishably for "N" and "D".  So the examples
don't seem to make the intended point.

-- 
	Viktor.



More information about the Haskell-Cafe mailing list