Haskell 查找作为typeclass实例的所有类型

Haskell 查找作为typeclass实例的所有类型,haskell,types,typeclass,ghci,Haskell,Types,Typeclass,Ghci,learnyouahaskell: 枚举类中的类型为 (), Bool, Char, Ordering, Int, Integer, Float and Double 有没有办法在GHCi中找到哪些类型是哪个typeclass的实例,反之亦然 我想要类似于:t的东西,我们在GHCi中使用它来查找表达式的类型 当然 对于类型类: Prelude> :i Enum class Enum a where succ :: a -> a pred :: a -> a toE

learnyouahaskell:

枚举类中的类型为

(), Bool, Char, Ordering, Int, Integer, Float and Double
有没有办法在GHCi中找到哪些类型是哪个typeclass的实例,反之亦然

我想要类似于
:t
的东西,我们在GHCi中使用它来查找表达式的类型

当然

对于类型类:

Prelude> :i Enum
class Enum a where
  succ :: a -> a
  pred :: a -> a
  toEnum :: Int -> a
  fromEnum :: a -> Int
  enumFrom :: a -> [a]
  enumFromThen :: a -> a -> [a]
  enumFromTo :: a -> a -> [a]
  enumFromThenTo :: a -> a -> a -> [a]
    -- Defined in `GHC.Enum'
instance Enum Ordering -- Defined in `GHC.Enum'
instance Enum Integer -- Defined in `GHC.Enum'
instance Enum Int -- Defined in `GHC.Enum'
instance Enum Char -- Defined in `GHC.Enum'
instance Enum Bool -- Defined in `GHC.Enum'
instance Enum () -- Defined in `GHC.Enum'
instance Enum Float -- Defined in `GHC.Float'
instance Enum Double -- Defined in `GHC.Float'
对于类型:

Prelude> :i Integer
data Integer
  = integer-gmp:GHC.Integer.Type.S# GHC.Prim.Int#
  | integer-gmp:GHC.Integer.Type.J# GHC.Prim.Int# GHC.Prim.ByteArray#
    -- Defined in `integer-gmp:GHC.Integer.Type'
instance Enum Integer -- Defined in `GHC.Enum'
instance Eq Integer -- Defined in `integer-gmp:GHC.Integer.Type'
instance Integral Integer -- Defined in `GHC.Real'
instance Num Integer -- Defined in `GHC.Num'
instance Ord Integer -- Defined in `integer-gmp:GHC.Integer.Type'
instance Read Integer -- Defined in `GHC.Read'
instance Real Integer -- Defined in `GHC.Real'
instance Show Integer -- Defined in `GHC.Show'
instance Ix Integer -- Defined in `GHC.Arr'
不幸的是,这仅限于标识符,而不是表达式。因此,您无法直接查找(比如)哪些实例适用于
[Char]
之类的类型

另外,请注意,它只显示范围内的实例和类型,因此您可能需要导入您感兴趣的内容