
GHC doesn't unpack sums, like B in the example. On Sun, Jun 15, 2014 at 10:30 PM, Carter Schonwald < carter.schonwald@gmail.com> wrote:
Are you sure that's not supported? That seems like a bug if so. I'm away from my computer right now so I can't check.
What ghc version? How are you checking if the unpack is firing?
Ghc 7.8 should by default be unpacking ALL strict small fields.
On Sunday, June 15, 2014, Nikita Volkov
wrote: Currently the pragma only supports single-constructor types. So in the following example it will simply be ignored:
data A = A1 Char | A2 {-# UNPACK #-} !B
data B = B1 Int | B2 Bool
However it seems to be easily solvable by changing the type A to something like the following during unpacking:
data A = A1 Char | A2_1 Int | -- from B1 A2_2 Bool -- from B2
Am I missing something? Why is it not implemented?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe