sig
  type 'a t = 'Ctypes.carray
  val get : 'Ctypes.CArray.t -> int -> 'a
  val set : 'Ctypes.CArray.t -> int -> '-> unit
  val unsafe_get : 'Ctypes.CArray.t -> int -> 'a
  val unsafe_set : 'Ctypes.CArray.t -> int -> '-> unit
  val of_list : 'a typ -> 'a list -> 'Ctypes.CArray.t
  val to_list : 'Ctypes.CArray.t -> 'a list
  val iter : ('-> unit) -> 'Ctypes.CArray.t -> unit
  val map : 'b typ -> ('-> 'b) -> 'Ctypes.CArray.t -> 'Ctypes.CArray.t
  val mapi :
    'b typ -> (int -> '-> 'b) -> 'Ctypes.CArray.t -> 'Ctypes.CArray.t
  val fold_left : ('-> '-> 'a) -> '-> 'Ctypes.CArray.t -> 'a
  val fold_right : ('-> '-> 'a) -> 'Ctypes.CArray.t -> '-> 'a
  val length : 'Ctypes.CArray.t -> int
  val start : 'Ctypes.CArray.t -> 'Ctypes.ptr
  val from_ptr : 'Ctypes.ptr -> int -> 'Ctypes.CArray.t
  val make :
    ?finalise:('Ctypes.CArray.t -> unit) ->
    'a typ -> ?initial:'-> int -> 'Ctypes.CArray.t
  val copy : 'Ctypes.CArray.t -> 'Ctypes.CArray.t
  val sub : 'Ctypes.CArray.t -> pos:int -> length:int -> 'Ctypes.CArray.t
  val element_type : 'Ctypes.CArray.t -> 'a typ
end