title: Inconsistency of scoping between "type ...and " and "let ...and " in Ocaml
body: <p>I wonder why in OCaml, <code>let ... and</code> does not have the same kind of scoping as <code>type ... and</code>.</p>
  <p>The following one is OK, <code>t2</code> is in the same scope as <code>t1</code>:</p>
  <pre><code># type t1 = t2 
  and t2 = int;;
  </code></pre>
  <p>This following one is wrong, <code>v2</code> is not in scope:</p>
  <pre><code># let v1 = v2
  and v2 = 3;;
  
    Characters 9-11:
    let v1 = v2
             ^^
  
  Error: Unbound value v2
  </code></pre>
  <p>Even <code>let rec</code> does not work:</p>
  <pre><code># let rec v1 = v2
  and v2 = 3;;
  
    Characters 13-15:
    let rec v1 = v2
                 ^^
  Error: This kind of expression is not allowed as right-hand side of `let rec'
  </code></pre>
  <p>Why this inconsistency of scoping between  <code>type... and</code> and <code>let...and</code>?</p>