UNPACK支持普通数据类型,如下所示:
data T = T {-# UNPACK #-} ! Int
但是有没有办法将UNPACK Pragma与GADT一起使用?
答案 0 :(得分:8)
尝试了它并发现它实际上与Constructor函数参数一起使用。
data BinHeap a where
Empty :: (Ord a) => BinHeap a
HeapNode :: (Ord a) => a -> {-# UNPACK #-} !Int -> BinHeap a -> BinHeap a -> BinHeap a
尼斯。