e>kliesli_compose</code> can be derived entirely from <code>flat_map</code>.</p><h6 id="monoid-laws"><a href="#monoid-laws" class="anchor"></a>Monoid Laws</h6><p>Monads satisfy the monoid laws at the endofunctor level:</p><pre><code class="ml"># #require &quot;bastet&quot;
# open Bastet;;

# let (&gt;=&gt;) = Option.Infix.(&gt;=&gt;);;
val ( &gt;=&gt; ) : ('a -&gt; 'b option) -&gt; ('b -&gt; 'c option) -&gt; 'a -&gt; 'c option =
  &lt;fun&gt;

# let to_positive_int = function
  | x when x &gt; 0 -&gt; Some 