sig
  type 'a t = private { arr : 'a array; ofs : int; len : int; }
  val empty : 'It_type.IT.Subarray.C.t
  val mk : arr:'a array -> ofs:int -> len:int -> 'It_type.IT.Subarray.C.t
end