&gt; They were originally a scheme thing, no?<p>Sure, but scheme is an imperative-functional language (as is OCaml).<p>&gt; It&#x27;s a continuation style so you never return<p>No, I&#x27;m talking about delimited continuations. No need for TCO. The continuation contains only a portion of the stack (off the top).<p>&gt; As you say the styles are equivalent<p>They&#x27;re only equivalent in the sense that they have the same expressive power. It&#x27;s been proven that continuations can be implemented with monads and that any monad can be expressed as a continuation, but continuations really do compose better (unless you use Kiselyov&#x27;s effect handlers).<p>&gt; I find call&#x2F;cc style incomprehensible at the code-reading level<p>Right, but we&#x27;re talking about <i>delimited</i> continuations, i.e shift&#x2F;reset, not call&#x2F;cc. You can simply treat them as threads. They&#x27;re not at all like gotos (you can read my blog post). My claim is that they fit much better with imperative (including functional-imperative) languages than monads.