<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Dear Cafe,<div class=""><br class=""></div><div class="">I'm wrapping up my CPS codebase to provide some monadic interface, it appears almost the Cont monad, so the following statement is a pretty valid caveat to me now:<br class=""><div class=""><br class=""></div><div class="">> <span style="color: rgb(232, 230, 227); font-family: sans-serif; font-size: 13px; font-variant-ligatures: normal; orphans: 2; widows: 2; background-color: rgb(24, 26, 27); text-decoration-thickness: initial;" class="">Abuse of the Continuation monad can produce code that is impossible to understand and maintain.</span><br class=""><div class=""><br class=""></div><div class="">Which can be viewed in context of Hackage at: <a href="https://hackage.haskell.org/package/mtl/docs/Control-Monad-Cont.html#:~:text=Abuse of the Continuation monad can produce code that is impossible to understand and maintain" class="">https://hackage.haskell.org/package/mtl/docs/Control-Monad-Cont.html#:~:text=Abuse%20of%20the%20Continuation%20monad%20can%20produce%20code%20that%20is%20impossible%20to%20understand%20and%20maintain</a> </div><div class=""><br class=""></div><div class="">But I can't find concrete examples demonstrating the "impossible to understand and maintain" situation, in figuring out what pitfalls I'd rather to avoid.</div><div class=""><br class=""></div><div class="">Please share what you know about it, many appreciations!</div><div class=""><br class=""></div><div class="">Background of my CPS necessarity: </div><div class=""><br class=""></div><div class="">Library code need to delegate STM transaction boundary delimitation to (scripting) application code, though `inlineSTM :: STM a -> m a` can be used to force some action to be within current tx, the usual `>>=` binding should honor whether a separate `atomically` tx should be issued for its rhs computation, as specified by the scripting context.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Compl</div><div class=""><br class=""></div></div></div></body></html>