Вложенные UNPACK в GHC

Я часто собираю несколько значений в кортежи, так как считаю кортежи естественным типом для этого. Однако кортежи не являются строгими. Итак, рассмотрим

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. Прагмы.

(являются ли непустые кортежи типами ? конструкторами типов?)

5
задан telephone 18 April 2012 в 20:46
поделиться