GHCi調べものメモ

  • GHCiコマンドによる調べもの
    • こちらにコマンド一覧
    • そこから、調べもの系のコマンドを抜粋
:type expression 
expressionの型を推論し、印字する。多相型には明示的な全称量化が加えられる。推論に際して、単相性制限は適用されない。
:kind type 
typeの類を推論し、印字する。typeは任意の型式で、Either Intのような型構築子の部分適用であっても構わない。
:info name ... 
与えられた名前についての情報を表示する。例えば、もしnameがクラスなら、クラスメソッドとその型が印字される。もしnameが型構築子なら、その定義が印字される。もしnameが関数なら、その型が印字される。nameがソースファイルからロードされたものであった場合、GHCiはその定義のソースコード中の位置も表示する。
型およびクラスについては、それに言及するインスタンスもまとめて示す。無関係な情報を見せることがないように、インスタンスは、(a)その頭部がnameに言及している、かつ(b)そのインスタンスで言及されているものが全て、:loadまたは:moduleコマンドの結果としてスコープにある(修飾されていてもそうでなくても良い)、場合にのみ表示される。
:browse[!] [[*]module] ... 
moduleで定義されている識別子を表示する。moduleは、GHCiにロードされているか、パッケージの要素でなければならない。moduleが省略された場合、直近にロードされたモジュールが使われる。
:help , :? 
利用可能なコマンドの一覧を表示する。
:show bindings 
プロンプトで導入された束縛と、その型を表示する。
:show packages 
現在有効なパッケージフラグと、現在ロードされているパッケージの一覧を表示する。
Prelude> :type (&&)
(&&) :: Bool -> Bool -> Bool
Prelude> :kind Int
Int :: *
Prelude> :info Bool
data Bool = False | True        -- Defined in `GHC.Types'
instance Bounded Bool -- Defined in `GHC.Enum'
instance Enum Bool -- Defined in `GHC.Enum'
instance Eq Bool -- Defined in `GHC.Classes'
instance Ord Bool -- Defined in `GHC.Classes'
instance Read Bool -- Defined in `GHC.Read'
instance Show Bool -- Defined in `GHC.Show'