sig
type ('a, 'b) el = Atome of 'b | List of ('a, 'b) Ilist.t
and ('a, 'b) t = 'a * ('a, 'b) Ilist.el list
val cons : ('a, 'b) Ilist.el -> ('a, 'b) Ilist.t -> ('a, 'b) Ilist.t
val atome : 'b -> ('a, 'b) Ilist.el
val list : 'a -> ('a, 'b) Ilist.el list -> ('a, 'b) Ilist.el
val of_list : 'a -> 'b list -> ('a, 'b) Ilist.t
val to_list : ('a, 'b) Ilist.t -> 'b list
val hd : ('a, 'b) Ilist.t -> ('a, 'b) Ilist.el
val tl : ('a, 'b) Ilist.t -> ('a, 'b) Ilist.t
val length : ('a, 'b) Ilist.t -> int
val depth : ('a, 'b) Ilist.t -> int
val append :
combine:('a -> 'a -> 'a) ->
('a, 'b) Ilist.t -> ('a, 'b) Ilist.t -> ('a, 'b) Ilist.t
val flatten : ?depth:int -> ('a, 'b) Ilist.t -> ('a, 'b) Ilist.t
val rev : ('a, 'b) Ilist.t -> ('a, 'b) Ilist.t
val mem : 'b -> ('a, 'b) Ilist.t -> bool
val exists : ('a -> 'b -> bool) -> ('a, 'b) Ilist.t -> bool
val map :
('a -> 'c) ->
(bool -> 'a -> 'b -> 'd) -> ('a, 'b) Ilist.t -> ('c, 'd) Ilist.t
val iter : (bool -> 'a -> 'b -> unit) -> ('a, 'b) Ilist.t -> unit
val fold_left :
('c -> bool -> 'a -> 'b -> 'c) -> 'c -> ('a, 'b) Ilist.t -> 'c
val fold_right :
(bool -> 'a -> 'b -> 'c -> 'c) -> ('a, 'b) Ilist.t -> 'c -> 'c
val print :
?first:(unit, Format.formatter, unit) Pervasives.format ->
?sep:(unit, Format.formatter, unit) Pervasives.format ->
?last:(unit, Format.formatter, unit) Pervasives.format ->
?firstexp:(unit, Format.formatter, unit) Pervasives.format ->
?lastexp:(unit, Format.formatter, unit) Pervasives.format ->
(Format.formatter -> 'a -> unit) ->
(Format.formatter -> 'b -> unit) ->
Format.formatter -> ('a, 'b) Ilist.t -> unit
end