我经常在元组中收集多个值,因为我认为元组是这种情况的自然类型。但是,元组并不严格。所以考虑
data A
data B =
B !A
data C =
C !(B, B)
data D =
D !B !B
通过-funbox-strict-fields
和优化,UNPACK 是嵌套的。中的元组会C
被解压缩成C A A
withD
还是 just C B B
?这是 GHC-doc 中的参考:7.16。语用。
(是非空元组类型吗?类型构造函数?)