haskellの型アノテーションに疑問があります。適用可能なファンクターについて読んで、私は見つけました:
pure (+) <*> Just 3
Just (+3)
これはタイプの どれを返しMaybe (a->a)
ます。今の署名<*>
は
(<*>) :: Applicative f => f (a -> b) -> f a -> f b
つまりf b
、上記の例では、をとに置き換えf
て取得されます。Maybe
b
a->a
そして、ここで私は、私が知る限り、b
(特定の用語を使用していない場合は申し訳ありませんが、それらが十分に明確であることを願っています)と統合できないため、ちょっと驚いていましたa->a
。
それは、私たちが内部にいてアプリケーションファンクターであるという理由だけで可能ですか、それとも私が見逃している何かが他にあるという理由で可能ですか?