let insert a pos v =
  let len = a.length in
  if pos > len then raise (Invalid_argument "Index too big to insert in this ext_array");
  if pos = len then
    ignore(add a v)
  else
    (
     let a1 = Array.sub a.data 0 pos in
     let a2 = Array.sub a.data pos (len - pos) in
     a.data <- Array.concat [ a1 ; [| v |]; a2]
    )