title: How to Factorize Continuation Monad into Left & Right Adjoints?
body: <p>As State monad can be factorized into Product (Left - Functor) and Reader (Right - Representable). </p>
  
  <ol>
  <li>Is there a way to factorize Continuation Monad? Below code is my attempt, which wont type check</li>
  </ol>
  
  <pre><code>-- To form a -&gt; (a -&gt; k) -&gt; k
  {-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigs, TypeSynonymInstances #-}
  type (&lt;-:) o i = i -&gt; o
  -- I Dont think we can have Functor &amp; Representable for this type synonym
  
  class Isomorphism a b where
     from :: a -&gt; b
     to :: b -&gt; a
  
  instance Adjunction ((&lt;-:) e) ((&lt;-:) e) where
     unit :: a -&gt; (a -&gt; e) -&gt; e
     unit a handler = handler a
  
     counit :: (a -&gt; e) -&gt; e -&gt; a
     counit f e = undefined -- If we have a constraint on Isomorphism a e then we can implement this
  </code></pre>
  
  <ol start="2">
  <li><p>Is there a list of Left &amp; Rights Adjoints that form monads?</p></li>
  <li><p>I have read that, given a pair of adjoints, they form a unique Monad &amp; Comonad but, given a Monad, it can be Factorized into multiple Factors. Is there any example of this?  </p></li>
  </ol>