haskell-jp / questions #98 at 2021-09-19 09:54:07 +0900

モナドについての質問です。(既出だったらすみません。)
以下の型を持つ関数は一般に存在しますかね?
Monadじゃないけどtraverseっぽい
ありがとうございます。やりたいのは多分それでした。
なるほど、traverseというのですね。

ちなみに、自分でも考えてみましたが、Monadの場合は存在しないことがわかりました。

mとnがMonadのとき、
forall a b, (a -> m b) -> n a -> m (n a)
forall a, n (m a) -> m (n a)
が同値になって、明らかに後者は成り立たないので。
まさにtraverseの公理そのものでしたね...
返答いただき、ありがとうございました。