sig
  type t
  type d = Increasing | Decreasing | IncreasingOrDecreasing
  val make : int -> Sundials.RootDirs.d -> Sundials.RootDirs.t
  val create : int -> Sundials.RootDirs.t
  val init : int -> (int -> Sundials.RootDirs.d) -> Sundials.RootDirs.t
  val pp : Stdlib.Format.formatter -> Sundials.RootDirs.t -> unit
  val ppi :
    ?start:string ->
    ?stop:string ->
    ?sep:string ->
    ?item:(Stdlib.Format.formatter -> int -> Sundials.RootDirs.d -> unit) ->
    unit -> Stdlib.Format.formatter -> Sundials.RootDirs.t -> unit
  val copy : int -> Sundials.RootDirs.d array -> Sundials.RootDirs.t
  val length : Sundials.RootDirs.t -> int
  val get : Sundials.RootDirs.t -> int -> Sundials.RootDirs.d
  val set : Sundials.RootDirs.t -> int -> Sundials.RootDirs.d -> unit
  val fill : Sundials.RootDirs.t -> Sundials.RootDirs.d -> unit
  val blitn :
    src:Sundials.RootDirs.t ->
    ?spos:int -> dst:Sundials.RootDirs.t -> ?dpos:int -> int -> unit
  val blit : src:Sundials.RootDirs.t -> dst:Sundials.RootDirs.t -> unit
  val of_list : Sundials.RootDirs.d list -> Sundials.RootDirs.t
  val to_list : Sundials.RootDirs.t -> Sundials.RootDirs.d list
  val of_array : Sundials.RootDirs.d array -> Sundials.RootDirs.t
  val to_array : Sundials.RootDirs.t -> Sundials.RootDirs.d array
end