0

:infoin ghciの出力が、それが属するすべてのクラスの後に型名をリストしている理由はありますか?例えば

Prelude> :info Int` 

プリント

...
instance Bounded Int -- Defined in `GHC.Enum'
instance Enum Int -- Defined in `GHC.Enum'
instance Eq Int -- Defined in `GHC.Classes*emphasized text*'
...

私が読みたいのは次のようなものです。

Prelude> :info Int
...
instance Bounded -- Defined in `GHC.Enum'
instance Enum -- Defined in `GHC.Enum'
instance Eq -- Defined in `GHC.Classes*emphasized text*'
...

またはさらに良いのは、次のような簡単な表記法です。

Prelude> :info Int
...
instance of Bounded, Enum, Eq,...
4

1 に答える 1

8

たぶん、理由はパラメータ化されたタイプでしょう。私のポイントを説明するために、この例を見てください:

$ ghci -XMultiParamTypeClasses -XFlexibleInstances
-- ...
Prelude> class Klass a b c where {f :: a b c -> c}
Prelude> data Typ b c = Typ b c
Prelude> instance Klass Typ b Integer where { f (Typ _ c) = c + 1 }
Prelude> let x = Typ "a" 3
Prelude> f x
4
Prelude> :info Typ
data Typ b c = Typ b c  -- Defined at <interactive>:3:6
instance Klass Typ b Integer -- Defined at <interactive>:4:10
于 2013-03-24T13:45:41.867 に答える