Interesting article. When I need to think about undoable things, I usually look for a group (a monoid with an inverse). In Haskell, this is the groups package. Then I’d look for a group action that lets my group type G act on my state S. That is, a function apply : G -> S -> S where apply g1 (apply g2 s) = apply (g1 <> g2) s. I’m not sure how this compares with your monad for Slipshow.
Haven’t read TFA yet, but wow, Slipshow is amazing! https://choum.net/panglesd/slides/campus_du_libre.html
Agreed, I skimmed the post and thought it was fine, but honestly I was more impressed with Slipshow. I think it deserves to be posted on its own.
Interesting article. When I need to think about undoable things, I usually look for a group (a monoid with an inverse). In Haskell, this is the
groupspackage. Then I’d look for a group action that lets my group type G act on my state S. That is, a functionapply : G -> S -> Swhereapply g1 (apply g2 s) = apply (g1 <> g2) s. I’m not sure how this compares with your monad for Slipshow.gold :-)