sig
  type 'a t
  val from_array : 'a array -> 'a Sundials_ROArray.t
  val to_array : 'a Sundials_ROArray.t -> 'a array
  val length : 'a Sundials_ROArray.t -> int
  val get : 'a Sundials_ROArray.t -> int -> 'a
  val init : int -> (int -> 'a) -> 'a Sundials_ROArray.t
  val append :
    'a Sundials_ROArray.t -> 'a Sundials_ROArray.t -> 'a Sundials_ROArray.t
  val concat : 'a Sundials_ROArray.t list -> 'a Sundials_ROArray.t
  val sub : 'a Sundials_ROArray.t -> int -> int -> 'a Sundials_ROArray.t
  val copy : 'a Sundials_ROArray.t -> 'a Sundials_ROArray.t
  val to_list : 'a Sundials_ROArray.t -> 'a list
  val of_list : 'a list -> 'a Sundials_ROArray.t
  val iter : ('a -> unit) -> 'a Sundials_ROArray.t -> unit
  val iteri : (int -> 'a -> unit) -> 'a Sundials_ROArray.t -> unit
  val map : ('a -> 'b) -> 'a Sundials_ROArray.t -> 'b Sundials_ROArray.t
  val mapi :
    (int -> 'a -> 'b) -> 'a Sundials_ROArray.t -> 'b Sundials_ROArray.t
  val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b Sundials_ROArray.t -> 'a
  val fold_right : ('b -> 'a -> 'a) -> 'b Sundials_ROArray.t -> 'a -> 'a
  val iter2 :
    ('a -> 'b -> unit) ->
    'a Sundials_ROArray.t -> 'b Sundials_ROArray.t -> unit
  val iteri2 :
    (int -> 'a -> 'b -> unit) ->
    'a Sundials_ROArray.t -> 'b Sundials_ROArray.t -> unit
  val map2 :
    ('a -> 'b -> 'c) ->
    'a Sundials_ROArray.t -> 'b Sundials_ROArray.t -> 'c Sundials_ROArray.t
  val fold_left2 :
    ('a -> 'b -> 'c -> 'a) ->
    'a -> 'b Sundials_ROArray.t -> 'c Sundials_ROArray.t -> 'a
  val for_all : ('a -> bool) -> 'a Sundials_ROArray.t -> bool
  val for_all2 :
    ('a -> 'b -> bool) ->
    'a Sundials_ROArray.t -> 'b Sundials_ROArray.t -> bool
  val exists : ('a -> bool) -> 'a Sundials_ROArray.t -> bool
  val mem : 'a -> 'a Sundials_ROArray.t -> bool
  val memq : 'a -> 'a Sundials_ROArray.t -> bool
  val iter3 :
    ('a -> 'b -> 'c -> unit) ->
    'a Sundials_ROArray.t ->
    'b Sundials_ROArray.t -> 'c Sundials_ROArray.t -> unit
  val iteri3 :
    (int -> 'a -> 'b -> 'c -> unit) ->
    'a Sundials_ROArray.t ->
    'b Sundials_ROArray.t -> 'c Sundials_ROArray.t -> unit
  val map3 :
    ('a -> 'b -> 'c -> 'd) ->
    'a Sundials_ROArray.t ->
    'b Sundials_ROArray.t -> 'c Sundials_ROArray.t -> 'd Sundials_ROArray.t
  val fold_left3 :
    ('a -> 'b -> 'c -> 'd -> 'a) ->
    'a ->
    'b Sundials_ROArray.t ->
    'c Sundials_ROArray.t -> 'd Sundials_ROArray.t -> 'a
end