UNPACK
Haskell での動作を理解するのに苦労しています。たとえば、次のデータ宣言を考えてみましょう。
data P a b = P !a !b
data T = T {-# UNPACK #-} !(P Int Int)
データ型はどのようT
にアンパックされますか? と同等でしょうか
data T' = T' !Int !Int
またはInt
s はさらに展開されます:
data T'' = T'' Int# Int#
? どうですか
data U = U {-# UNPACK #-} !(P Int (P Int Int))
?