「MonadPlusは高階なモノイドである」っていう主張、妥当か否か? (e.g...

「MonadPlusは高階なモノイドである」っていう主張、妥当か否か?
(e.g. MonadPlus Maybe は Nothing mplus Just = Just かつ右についてもそう)

Replies

「MonadPlusは高階なモノイドである」っていう主張、妥当か否か?
(e.g. MonadPlus Maybe は Nothing mplus Just = Just かつ右についてもそう)

よく分からないんですけど、Alt によって任意の MonadPlus は Monoid になるのと関係ありそうな気が
https://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Monoid.html#t:Alt

Alternative は (Hask, (), (,)) -> (Hask, Void, Either)の monoidal functorだから、monoidっぽいのは間違いなし

f Void <-> f a — trivial
f a -> f b -> f (Either a b) <-> f a -> f a -> f a — trivial

Monoidal functor であるという条件からこの二つの関数が得られて、

() -> f Void
forall a b. (f a, f b) -> f (Either a b)

これが Alternative である条件の二つの関数と対応するということですよね?

forall a. f a
forall a. f a -> f a -> f a

(一瞬、forall a. f Void <-> f a に見えてびっくりした)

ww
そうです、その <-> はisomorphicの記号みたいなものww

ありがとうございます!
とても参考になりました

MonadPlusは高階なモノイドである
(任意のMonadPlusはAltを介して任意のaに対してMonoidである)
って感じに主張しようかな🙄

monoidal functor、また何なのか忘れたのでみてみよw

「高階な」って言葉が気になるのは私だけですかねえ・・・。 MonadPlus m であれば m a はモノイド、ならシンプルかつ正しい主張でいいんですけど。

Monoid1みたいな?