如果启用MagicHash,则将具有未填充的值,如42#type Int#。
现在,如果Type是值的那种类型,那么样的Int#应该是Type,但它不是,因为Type是一个代名词TYPE 'LiftedRep,而那种Int#是TYPE 'IntRep。我们可以很容易地确认这ghci,
Prelude> :set -XMagicHash -XKindSignatures
Prelude> :m +Data.Kind GHC.Prim
Prelude Data.Kind GHC.Prim> :k (Int# :: Type)
<interactive>:1:2: error:
• Expecting a lifted type, but ‘Int#’ is unlifted
• In the type ‘(Int# :: Type)’
Run Code Online (Sandbox Code Playgroud)
难道我们不考虑诸如42#值之类的魔术文字吗?
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |