title: Why WrappedMonad and WrappedArrow?
body: <p>Why does the <code>WrappedMonad</code> and <code>WrappedArrow</code> types exist? Is it because <code>Monad</code>s were not <code>Applicative</code>? Given that <code>WrappedArrow</code> exists, should the instance </p>
  
  <pre><code>Arrow a =&gt; Applicative (Arrow a b) 
  </code></pre>
  
  <p>simply be built into the Haskell itself the same way that <code>Applicative</code> is now a superclass of <code>Monad</code>?</p>