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.  <div><br></div><div>What ghc version? How are you checking if the unpack is firing? </div>
<div><br></div><div>Ghc 7.8 should by default be unpacking ALL strict small fields. <span></span><br><br>On Sunday, June 15, 2014, Nikita Volkov <<a href="mailto:nikita.y.volkov@mail.ru">nikita.y.volkov@mail.ru</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div></div></div><div><p style="margin:1.2em 0px!important">Currently the pragma only supports single-constructor types. So in the following example it will simply be ignored:</p>


<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline;background-color:rgb(248,248,248);white-space:pre-wrap;overflow:auto;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,255)">data A = 
  A1 Char |
  A2 {-# UNPACK #-} !B

data B = 
  B1 Int |
  B2 Bool
</code></pre><p style="margin:1.2em 0px!important">However it seems to be easily solvable by changing the type <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline;background-color:rgb(248,248,248)">A</code> to something like the following during unpacking:</p>



<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline;background-color:rgb(248,248,248);white-space:pre-wrap;overflow:auto;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,255)">data A =
  A1 Char |
  A2_1 Int |    -- from B1
  A2_2 Bool     -- from B2
</code></pre><p style="margin:1.2em 0px!important">Am I missing something? Why is it not implemented?</p>
<div title="MDH:PGRpdj48ZGl2PkN1cnJlbnRseSB0aGUgcHJhZ21hIG9ubHkgc3VwcG9ydHMgc2luZ2xlLWNvbnN0
cnVjdG9yIHR5cGVzLiBTbyBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUgaXQgd2lsbCBzaW1wbHkg
YmUgaWdub3JlZDo8YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5gYGA8L2Rpdj48ZGl2PmRh
dGEgQSA9Jm5ic3A7PC9kaXY+PGRpdj4mbmJzcDsgQTEgQ2hhciB8PC9kaXY+PGRpdj4mbmJzcDsg
QTIgey0jIFVOUEFDSyAjLX0gIUI8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PmRhdGEgQiA9Jm5i
c3A7PC9kaXY+PGRpdj4mbmJzcDsgQjEgSW50IHw8L2Rpdj48ZGl2PiZuYnNwOyBCMiBCb29sPC9k
aXY+PGRpdj5gYGA8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pkhvd2V2ZXIgaXQgc2VlbXMgdG8g
YmUgZWFzaWx5IHNvbHZhYmxlIGJ5IGNoYW5naW5nIHRoZSB0eXBlIGBBYCB0byBzb21ldGhpbmcg
bGlrZSB0aGUgZm9sbG93aW5nIGR1cmluZyB1bnBhY2tpbmc6PC9kaXY+PGRpdj48YnI+PC9kaXY+
PGRpdj5gYGA8L2Rpdj48ZGl2PmRhdGEgQSA9PC9kaXY+PGRpdj4mbmJzcDsgQTEgQ2hhciB8PC9k
aXY+PGRpdj4mbmJzcDsgQTJfMSBJbnQgfCAmbmJzcDsgJm5ic3A7LS0gZnJvbSBCMTwvZGl2Pjxk
aXY+Jm5ic3A7IEEyXzIgQm9vbCAmbmJzcDsgJm5ic3A7IC0tIGZyb20gQjI8L2Rpdj48ZGl2PmBg
YDwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QW0gSSBtaXNzaW5nIHNvbWV0aGluZz8gV2h5IGlz
IGl0IG5vdCBpbXBsZW1lbnRlZD88L2Rpdj48L2Rpdj48ZGl2PjwvZGl2Pg==" style="min-height:0;font-size:0em;padding:0;margin:0">​</div></div><div><br></div></div>
</blockquote></div>