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 <nikita.y.volkov@mail.ru> 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