Binary Search Tree insert function in OCaml
<p>Suppose we want to insert value smaller. It will go to <code>Node (insert x left, k, right)</code> 
I don't understand how we can have <code>insert x left</code> when function insert is declared as taking only one argument, the key. How can left also be passed to insert funtion?</p>

<pre><code>type 'a bst_t =  
| Leaf
| Node of 'a bst_t * 'a * 'a bst_t

let rec insert x = function  
  | Leaf -&gt; Node (Leaf, x, Leaf) 
  | Node (left, k, right) -&gt;
    if x &lt; k then Node (insert x left, k, right) 
    else Node (left, k, insert x right) 
</code></pre>