GHCI 中未评估的功能

Function not evaluating in GHCI

如果我为 maxBound 分配一个变量:

let bInt = maxBound

评估 bInt 打印 ()

但是如果我输入 bInt

bInt :: Int
prints : 9223372036854775807

为什么 bInt 在我键入之前不计算

bInt (bInt :: Int) ?

maxBoundBounded 类型 class 中的函数。默认情况下,GHCi 似乎为 () 选择实例,即 returns ()。您可以通过添加类型签名强制它使用另一个实例。

let bInt :: Int; bInt = maxBound
bInt -- 9223372036854775807

let x = maxBound
x :: () -- ()
x :: Bool -- True
x :: Char -- '14111'