title: OCaml: how to get a module alias local to mli file
body: <p>Is it possible to alias a module in an mli without creating a "new module that must be implemented".
  This example is pretty contrived, but, for instance, suppose I have the following source file int_wrapper.ml.</p>
  
  <pre><code>type t = Int64.t
  
  let zero = Int64.of_string "0"
  </code></pre>
  
  <p>And I want to define an interface file for it, but Int64.t is pretty long so I want to abbreviate it.</p>
  
  <pre><code>module I = Int64
  
  val zero : int -&gt; I.t
  </code></pre>
  
  <p>When attempting to compile the module, I (predictably) get the following error</p>
  
  <pre><code>ocamlbuild int_wrapper.cmo
  + ~/.opam/4.03.0/bin/ocamlc.opt -c -o int_wrapper.cmo int_wrapper.ml
  File "int_wrapper.ml", line 1:
  Error: The implementation int_wrapper.ml
     does not match the interface int_wrapper.cmi:
     The module `I' is required but not provided
  Command exited with code 2.
  Compilation unsuccessful after building 4 targets (0 cached) in 00:00:00.
  Exit 10
  </code></pre>
  
  <p>and that's because <code>module I = Int64</code> is not an alias. I'm actually defining a new module that-just-happens-to-be-identical to <code>Int64</code> and since that module is in a signature, I'm required to provide an implementation in the source file.
  Is there a way to get a true alias inside an interface file?</p>