查找任意类型表达式的实例

问题描述 投票:0回答:1

有没有办法说服 GHCi 告诉我一些任意类型表达式实现了哪些类型类实例?

显然,您可以使用

:info
命令查找 type 构造函数 的所有实例。但是一些复杂的类型表达式呢?

例如,如果我想知道

Maybe Int
有哪些实例(不是
Maybe
,而是
Maybe Int
),我该怎么做呢?

我试过了

 :info Maybe Int

但这只是给了我

Maybe
的信息,然后是
Int
的信息。它将它视为两个独立的类型构造函数,而不是类型表达式。

特别是当你有复杂的 monad 转换器堆栈时,特定堆栈可能具有哪些实例并不总是很明显。

haskell typeclass ghci
1个回答
0
投票

自 GHC 8.10.1 以来,GHCi 中有一个

:instances
命令:

> :instances (Maybe Int)
instance Read (Maybe Int) -- Defined in ‘GHC.Read’
instance Eq (Maybe Int) -- Defined in ‘GHC.Maybe’
instance Ord (Maybe Int) -- Defined in ‘GHC.Maybe’
instance Show (Maybe Int) -- Defined in ‘GHC.Show’
© www.soinside.com 2019 - 2024. All rights reserved.