t. Here are some concrete examples:</p><pre><code class="ml"># let empty = 0;;
val empty : int = 0
# 10 + empty = 10;;
- : bool = true

# let empty = 1;;
val empty : int = 1
# 5 * empty = 5;;
- : bool = true

# let empty = &quot;&quot;;;
val empty : string = &quot;&quot;
# &quot;foo&quot; ^ empty = &quot;foo&quot;;;
- : bool = true</code></pre><p>In these examples, <code>((+), 0)</code>, <code>(( * ), 1)</code>, and <code>((^), &quot;&quot;)</code> are all monoids: all of those operations are associative, a