[Haskell-cafe] an idea for modifiyng data/newtype syntax: use `::=` instead of `=`
Tom Ellis
tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk
Sat Aug 8 20:49:46 UTC 2015
On Sat, Aug 08, 2015 at 10:43:39PM +0200, MigMit wrote:
> Prelude> newtype A = A Int deriving Show
> Prelude> data B = B !Int deriving Show
> Prelude> let x = case x of A n -> A 1 in x
> A 1
> Prelude> let y = case y of B n -> B 1 in y
> *** Exception: <<loop>>
Sure, they're not exactly the same thing but if you get the translations
right you can use them for the same purposes:
Prelude> let y = case y of b -> B 1 in y
B 1
I list the translations here
http://stackoverflow.com/questions/21327740/strict-single-constructor-single-field-data-declaration-vs-newtype/21331284#21331284
Tom
More information about the Haskell-Cafe
mailing list