you can see it can be pretty useful. One of the benefits of magmas is that it's very general because you don't need to satisfy any additional laws.</p><p>You might ask: why not just use <a href="#monoid">monoids</a>? Integer subtraction (<code>-</code>) can't be a monoid because although it has an empty element (<code>0</code>), it's not <i>associative</i> — the <i>evaluation order</i> of the operations matter:</p><pre><code class="ml"># 10 - (1 - 2) = (10 - 1) - 2;;
- : bool = false</code></pre><p>And ob