title: OCaml: Including module but making type abstract
body: <p>Suppose I want to extend the <code>Array</code> module,</p>
  
  <pre><code>module type VEC =
  sig
    include module type of Array
    type 'a t
    (* other stuff *)
  end
  </code></pre>
  
  <p>with concrete implementation</p>
  
  <pre><code>module Vec : VEC = struct
  include Array
  type 'a t = 'a array
  (* other stuff *)
  end
  </code></pre>
  
  <p>Using <code>include Array</code> gives me the advantage of being able to continue using functions from the <code>Array</code> module and also having access to operators. However, if I call <code>Vec.make 4 0</code> it will return an <code>int array</code>. </p>
  
  <p>What I want it to do is to be able to continue using the functions from the <code>Array</code> module but  have them return <code>int Vec.t</code> instead. I am wondering if this is possible?</p>