title: OCaml explicit type signatures
body: <p>In Haskell, it is considered good practice to explicitly declare the type signature of your functions, even though it can (usually) be inferred. It seems like this isn't even possible in OCaml, e.g. </p>
  
  <pre><code>val add : int -&gt; int -&gt; int ;;
  </code></pre>
  
  <p>gives me an error. (Although I can make <code>type</code> modules which give only signatures.)</p>
  
  <ol>
  <li>Am I correct in that this isn't possible to do in OCaml?</li>
  <li>If so, why? The type system of OCaml doesn't seem that incredibly different from Haskell.</li>
  </ol>