title: how to pattern match on an arbitrary number of arguments?
body: <p>Is there an OCaml equivalent to Haskell's pattern matching on an arbitrary number of arguments? For example, can I have something resembling:</p>
  
  <pre><code>merge [] lst = lst
  merge lst [] = lst
  merge l1 @ (n : ns) l2 @ (m : ms) = 
    if n &lt; m then n : merge ns l2 else m : merge l1 ms
  </code></pre>
  
  <p>(The example's lifted from Developing Applications with Objective Caml :)</p>
  
  <p>Thanks.</p>