a>, where <code>empty</code> is the identity function and <code>append</code> is function composition:</p><pre><code class="ml"># let empty x = x;;
val empty : 'a -&gt; 'a = &lt;fun&gt;

# let append f g x = f (g x);;
val append : ('a -&gt; 'b) -&gt; ('c -&gt; 'a) -&gt; 'c -&gt; 'b = &lt;fun&gt;

# let satisfies_identity_law = (append string_of_int empty) 123 = string_of_int 123;;
val satisfies_identity_law : bool = true

# let satisfies_associative_law =
  (append string_of_int (append ((+) 1) (( * ) 2))) 