GHCi 中的 PrimOps

PrimOps in GHCi

是否可以在 GHCi 中使用 PrimOps?以下不起作用:

$ ghci -XMagicHash
GHCi, version 8.10.1: https://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/stefan/.ghci
λ> let x = 42.0# :: Float#

<interactive>:1:18: error:
    Not in scope: type constructor or class ‘Float#’
    Perhaps you meant ‘Float’ (imported from Prelude)

手动导入 Prelude 无法解决此错误。

更新:导入后GHC.Exts出现以下错误:

$ ghci -XMagicHash
GHCi, version 8.10.1: https://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/stefan/.ghci
λ> import GHC.Exts
λ> let x = 42.0# :: Float#

<interactive>:1:1: error:
    GHCi can't bind a variable of unlifted type: x :: Float#

MagicHash 扩展使得在名称中使用 # 合法。如果你想指定像Float#这样的类型,你仍然需要导入它们。执行 import GHC.Exts 并重试。

此外,您不能将它们与 let 绑定。您需要立即使用它们并重新包装它们。