Unlifted data types

Dan Doel dan.doel at gmail.com
Fri Sep 4 16:57:42 UTC 2015


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 <ezyang at mit.edu> wrote:
> 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 at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


More information about the ghc-devs mailing list