>>255
ライブラリドキュメントを眺めていて、どんな使い方ができるんだろと想像するのは、そりゃ難しいよ。
それはドキュメントの使い方を間違っていると思う。

俺はアプリケーションを作っている時、

1. こういう引数からこういう結果になる関数が欲しい
2. 1の計算を分解すると A、B、C という計算の組み合わせになりそうだ
3. A、B、C を計算する関数をすでに誰か作っていないだろうか?

という順に考えて、A、B、C をドキュメントから探す、という使い方をしてる。


*> の例なら、誰かがパーサーで認識だけして捨てるのに使っているのを見てアハ体験をするのではない。

そうじゃなくて、初めにパーサーを作っていて認識だけして捨てたいという欲求が湧いてきて、
じゃあどうするかと考えた時に、まず「認識だけして捨てる」とはどういう計算なのかを分析する。
そうして事の本質を捉えてからドキュメントから求めるものを探す。

その時、たまたま既にパーサーの構造を Applicative で表現していれば、
ドキュメントの Control.Applicative モジュールの項を真っ先に探して *> を見つけるだろうし、
別の方法で実装していれば、実現する関数はライブラリには無さそうだなと諦めて自作するかも知れない。
何れにしてもアハ体験の出番はない。


言っておくが、アハ体験が悪いわけではないぞ。
他人の解説やソースコードを見て、そういう使い方もできるのかと学ぶ事は大事だ。
ただ、ドキュメントをそのように使うのは違うだろ、つまり(ライブラリ)ドキュメントは
解説書でも読み物でもないだろ、と言いたいんだ。