【发布时间】:2020-08-17 06:30:50
【问题描述】:
我有一个函数
mySucc :: (Enum a, Bounded a, Eq a, Show a) => a -> Maybe a
mySucc int
| int == maxBound = Nothing
| otherwise = Just $ succ int
当我想在 ghci 中打印这个函数的输出时,Haskell 似乎对使用哪个 Show 实例感到困惑。这是为什么? Haskell 不应该在运行时自动解析 a 的类型并使用它的 Show 吗?
我对类型类的有限理解是,如果你提到一个类型(在我的例子中是 a)并说它属于一个类型类(Show),Haskell 应该自动解析该类型。这不就是它如何解决有界、枚举和方程式的吗?如果我的理解有误,请纠正我。
【问题讨论】:
-
你是如何在 GHCi 中调用这个函数的?
-
您好,是使用“stack ghci”
标签: haskell