タプルはこのための自然なタイプであると考えているため、タプルで複数の値を収集することがよくあります。ただし、タプルは厳密ではありません。だから考えて
data A
data B =
B !A
data C =
C !(B, B)
data D =
D !B !B
および最適化により-funbox-strict-fields、UNPACK はネストされます。のタプルは のCようにアンパックさC A AれますかD、それとも単にC B Bですか? GHC-doc のリファレンスは次のとおりです: 7.16. プラグマ。
(空でないタプルは型ですか? 型コンストラクターですか?)