Unpacking sum types

Simon Marlow marlowsd at gmail.com
Tue Sep 8 07:53:00 UTC 2015

On 07/09/2015 15:35, Simon Peyton Jones wrote:
> Good start.
> I have updated the page to separate the source-language design (what the
> programmer sees) from the implementation.
> And I have included boxed sums as well – it would be deeply strange not
> to do so.

How did you envisage implementing anonymous boxed sums?  What is their 
heap representation?

One option is to use some kind of generic object with a dynamic number 
of pointers and non-pointers, and one field for the tag.  The layout 
would need to be stored in the object.  This isn't a particularly 
efficient representation, though.  Perhaps there could be a family of 
smaller specialised versions for common sizes.

Do we have a use case for the boxed version, or is it just for consistency?


> Looks good to me!
> Simon
> *From:*Johan Tibell [mailto:johan.tibell at gmail.com]
> *Sent:* 01 September 2015 18:24
> *To:* Simon Peyton Jones; Simon Marlow; Ryan Newton
> *Cc:* ghc-devs at haskell.org
> *Subject:* RFC: Unpacking sum types
> I have a draft design for unpacking sum types that I'd like some
> feedback on. In particular feedback both on:
>   * the writing and clarity of the proposal and
>   * the proposal itself.
> https://ghc.haskell.org/trac/ghc/wiki/UnpackedSumTypes
> -- Johan

More information about the ghc-devs mailing list