been hacking on a slightly different (to cats) monad interface ... early days, but it's working out quite nicely i think - i got rid of the dynvar for context, and introduced a wrapper for all mvs, which allows for auto-lifting ... so using some more complex types becomes feasible (i really wanted a reader and a writer mixed in with my promise monad). there is macro to generate local helper fns too (like ask
, tell
etc, though i'm less sure about that https://github.com/mccraigmccraig/mopr/blob/master/src/mopr/control/monad.cljc