我很难理解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))
?