title: Ocaml Int and negative values
body: <p>Given this snippet of OCaml code:</p>
  
  <pre><code>let rec range a b =
    if a &gt; b then []
    else a :: range (a+1) b
    ;;
  </code></pre>
  
  <p>The Repl tells me that it's type is:</p>
  
  <pre><code>val range : int -&gt; int -&gt; int list = &lt;fun&gt;
  </code></pre>
  
  <p>Giving it inputs such as:</p>
  
  <pre><code>range 0 4;;
  </code></pre>
  
  <p>gives back the list:</p>
  
  <pre><code>- : int list = [0; 1; 2; 3; 4]
  </code></pre>
  
  <p>However providing the input</p>
  
  <pre><code>range -4 2;;
  </code></pre>
  
  <p>Gives the error:</p>
  
  <pre><code>Characters 0-5:
    range -4 1;;
   ^^^^^
  This expression has type int -&gt; int -&gt; int list but is here used with type int.
  </code></pre>
  
  <p>What is this trying to tell me?</p>