我刚读完Levity Polymorphism这篇论文.
我有一个问题,undefined
当用作未装箱的类型时,为什么可以是levity-polymorphic.
首先,让我们从论文的一些盒子定义开始:
盒装:
甲装箱值由指针到堆中表示.
Int
并且Bool
是具有盒装值的类型的示例.
未装箱:
本文遵循一些轻浮的定义:
举起:
甲抬起类型是一个是懒.
甲解除类型具有超出了正常的人额外元件上,表示非终止计算.
例如,该类型Bool
被提升,这意味着存在用于三个不同的值Bool
:True
,False
,和?
(底部).
所有提升类型必须装箱.
未提升
未提升的类型是严格的类型.
该元素?
不存在于未提升类型中.
Int#
并且Char#
是未提升类型的例子.
本文接着解释了GHC …