t's just a set (or type) with a single binary operation, and that binary operation must be closed under that set. That just means it takes two arguments of the same type and returns the same type. You're already familiar with several magmas:</p><pre><code class="ml"># (+);;
- : int -&gt; int -&gt; int = &lt;fun&gt;
# (-);;
- : int -&gt; int -&gt; int = &lt;fun&gt;
# (+.);;
- : float -&gt; float -&gt; float = &lt;fun&gt;
# (/.);;
- : float -&gt; float -&gt; float = &lt;fun&gt;
# (&amp;&amp;);;
- : bool -&gt;