<p>The distributive law solution 
    l : MN -> NM is enough </p>

<p>to guarantee monadicity of NM. To see this you need a unit and a mult. i'll focus on the mult (the unit is unit_N unitM)</p>

<pre><code>NMNM - l -&gt; NNMM - mult_N mult_M -&gt; NM
</code></pre>

<p>This does <em>not</em> guarantee that MN is a monad.</p>

<p>The crucial observation however, comes into play when you have distributive law solutions</p>

<pre><code>l1 : ML -&gt; LM
l2 : NL -&gt; LN
l3 : NM -&gt; MN
</code></pre>

<p>thus, LM, LN and MN are monads. The question arises as to whether LMN is a monad (either by </p>

<p>(MN)L -> L(MN)
or by
N(LM) -> (LM)N</p>

<p>We have enough structure to make these maps. However, as <a href="http://arxiv.org/abs/0710.1120" rel="noreferrer">Eugenia Cheng observes</a>, we need a hexagonal condition (that amounts to a presentation of the Yang-Baxter equation) to guarantee monadicity of either construction. In fact, with the hexagonal condition, the two different monads coincide.</p>
Applicatives compose, monads don't
<blockquote>
  <p>Applicatives compose, monads don't.</p>
</blockquote>

<p>What does the above statement mean? And when is one preferable to other?</p>