
All your examples are non-recursive types. So, if I have:
data Nat = Zero | Suc Nat
what is !Nat? Does it just have the outer-most part unlifted?
Is the intention to make the !a in data type declarations first-class,
so that when we say:
data Nat = Zero | Suc !Nat
the !Nat part is now an entity in itself, and it is, for this
declaration, the set of naturals, whereas Nat is the flat domain?
On Fri, Sep 4, 2015 at 4:03 AM, Edward Z. Yang
Hello friends,
After many discussions and beers at ICFP, I've written up my current best understanding of the unlifted data types proposal:
https://ghc.haskell.org/trac/ghc/wiki/UnliftedDataTypes
Many thanks to Richard, Iavor, Ryan, Simon, Duncan, George, Paul, Edward Kmett, and any others who I may have forgotten for crystallizing this proposal.
Cheers, Edward _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs