title: Array manipulation in OCaml
body: <p>I am manipulating 2-dimensional arrays in OCaml. I have some questions:</p>
  <ol>
  <li><p>How to declare an array whose length is of type <code>int64</code>, instead of <code>int</code>? For instance, <code>Array.make : int -&gt; 'a -&gt; 'a array</code>, what if I need a bigger array whose index is of type <code>int64</code>?</p>
  </li>
  <li><p>May I write something like the following:</p>
  <p>let array = Array.make_matrix 10 10 0 in
  array.(1).(2) &lt;- 5; array.(3).(4) &lt;- 20; (* where I modify a part of values in array)
  f array ...
  ...
  The code above seems to me unnatural, because we modify the value of <code>array</code> inside the <code>let</code>, do I have to this, or is there a more natural way to do this?</p>
  </li>
  </ol>
  <p>Could anyone help? thank you very much!</p>