4

私はGHCIにロードしたライブラリを使用しています。

関数の名前から、どれを使用すべきかは明らかではありません。私はそれが存在すると確信しており、利用可能な関数の型シグネチャのリストを見たいと思っています。これを行う方法がわかりません。

  • モジュール名を入力し、GHCI でタブ補完を使用すると、ライブラリによってエクスポートされたすべての関数のリストを取得できます。
  • 問題のライブラリがカバーされていないため、 Hoogleは私には役に立ちません。ただし、Hoogle スタイルの検索は便利です。
  • 私はGHCIの を知って:tいますが、それは単一の関数でしか機能しないようで、ライブラリによってエクスポートされているすべての関数に対してこれを行いたくありません.
  • ソースディレクトリで実行grep -R :: ./*または同様のことを行うと、明示的な型署名のない関数が省略される場合があります。
  • ライブラリには Haddock のドキュメントがありますが、約 1000 の関数が数十のサブモジュールに分散しており、それらすべてを手動で検索するのは面倒でエラーが発生しやすくなっています。

私はどんな方法を試しても構わないと思っていますが、単純で、移植可能で、反復可能な方法を好むのは明らかです。

ライブラリ内のすべてのエクスポートされた関数の型シグネチャを見つける方法はありますか? または、特定の型を含む型シグネチャを持つ関数を見つけるには?

4

1 に答える 1

5

使用するだけ:browse Module.Nameで、モジュールによってエクスポートされたすべての値が表示されます。

> :browse Data.Tagged
newtype Tagged s b = Tagged {unTagged :: b}
asTaggedTypeOf :: s -> Tagged s b -> s
retag :: Tagged s b -> Tagged t b
tagSelf :: a -> Tagged a a
untag :: Tagged s b -> b
untagSelf :: Tagged a a -> a
于 2011-03-11T19:51:22.990 に答える