Haskell
Hackage
Stackage

最近のHaskell製パッケージのドキュメント事情について簡単に

More than 1 year has passed since last update.

最近、自社内でHaskell勉強会を毎週のように開いているのですが、

ドキュメントの調べ方について聞かれたのでこっちにメモしておきます。

と、いうわけで、hackageに公開されているHaskell製パッケージのドキュメントについて簡単に説明しましょう。

baseという、PreludeをはじめGHCに標準で入っているパッケージのドキュメントも同じように調べられます。


パッケージの名前や、概要から検索したい場合は



  • hackageから検索するか、


  • stackageのトップから「browse packages」というリンクをクリックして、LTS-Haskellに載っているパッケージをページ内検索してください。


    • 今のところ、パッケージの名前で検索するフォームはstackageにはないみたいです。



:information_desk_person: 後者は、LTS-Haskellに載っているパッケージのみの一覧なので、hackageに公開されているすべてのパッケージが載っているわけではありません。

詳しくはtanakhさんの記事のこのへんが参考になるかと思います。


どこかのパッケージに入っている、関数の名前や関数のシグネチャ(型)から検索したい場合は


  • 従来からあるhoogleや、hayooを使うか、

  • 同じくstackageのトップページにある検索フォームから検索しましょう。

:warning: 現在はどうなっているかわからず恐縮ですが前者について。

hoogleやhayooが参照している、hackageのドキュメント生成が追いつかなくなる、と言った事態が発生し、新し目のパッケージがヒットしない、などのトラブルがありました。

なので最近は私は後者を利用しています。


追記: hackageのドキュメント生成が追い付いてない && stackageに登録されてない時は?

stackageは他のstackageのパッケージと組み合わせた時にビルドやテストが通るパッケージしか登録されていないので、結構登録されていないものもあります。

(あとは、パッケージの作者がサボっている場合も)

その上hackageのドキュメント生成が追い付いてない場合、なんて悲しい状況でも希望を捨てず、古いバージョンを見てみましょう。

例えば、2016年10月30日時点でhaste-compiler-0.5.4.2はドキュメントが登録されてません(「Modules」とかかれた一覧の各moduleがリンクになってない)が、違うバージョンのhaste-compiler-0.5.4.1ならドキュメントができているようです。