&gt; But effects do need to satisfy the laws if the &quot;natural&quot; way of writing them is to make sense, so I&#x27;d rather that were enforced (compare the confusing results one gets when using Set in a scala for&#x2F;yield, because it doesn&#x27;t obey the monad laws). Unless you&#x27;re restricting the &quot;interpreters&quot; such that the implementation of a given action is necessarily monadic?<p>I haven&#x27;t thought too much about it, but I believe that if you structure effects as continuations, then they are monadic by construction (though I may well be wrong) because the continuations themselves are monadic. But I got interested in continuations because I don&#x27;t like Haskell&#x27;s purity, and I wondered if there is an imperative construct with the same expressive power as the PFP monad, and it turns out that not only that there is one, but that it composes much better than monads.<p>&gt; Have you seen the &quot;freer monad, more extensible effects&quot; paper? I think they end up in a similar place, though from the opposite direction - using a single structure typed by a (type-level) list of possible effects to represent an effectful operation, and then you supply an interpretation for each effect to run it<p>Yes, and it isn&#x27;t a coincidence. Oleg Kiselyov started out trying to bring the composability of continuations to Haskell (he built at least one continuation library for OCaml). As I wrote in that blog post, that was an open question by Phil Wadler: whether monads could be made as composable as continuations, and Kiselyov showed that the could.