Private.Array_viewval make : ?len:int -> 'a array -> pos:int -> 'a tmake arr ~pos ~len can be thought of a new array for which the 0-th element is arr.(pos) and has length len if specified. If len is omitted, Array.length arr - pos is taken as the length. Importantly, the "new array" does not copy but simply references arr. Hence, creating views is constant time. However, keep in mind that since a view references an array, the array will be alive in memory as long as the view is alive.
val get : 'a t -> int -> 'aval set : 'a t -> int -> 'a -> unitval is_empty : 'a t -> boolval length : 'a t -> intval fold_left : 'a t -> init:'acc -> f:('acc -> 'a -> 'acc) -> 'accval iteri : 'a t -> f:(int -> 'a -> unit) -> unitval blit : 'a t -> 'a array -> pos:int -> unitval copy : 'a t -> 'a arrayval backing_array_pos : _ t -> int -> int