sig   type 'a t   val iter : ('a -> unit) -> 'a Enum.t -> unit   val iter2 : ('a -> 'b -> unit) -> 'a Enum.t -> 'b Enum.t -> unit   val fold : ('a -> 'b -> 'b) -> 'b -> 'a Enum.t -> 'b   val fold2 : ('a -> 'b -> 'c -> 'c) -> 'c -> 'a Enum.t -> 'b Enum.t -> 'c   val iteri : (int -> 'a -> unit) -> 'a Enum.t -> unit   val iter2i : (int -> 'a -> 'b -> unit) -> 'a Enum.t -> 'b Enum.t -> unit   val foldi : (int -> 'a -> 'b -> 'b) -> 'b -> 'a Enum.t -> 'b   val fold2i :     (int -> 'a -> 'b -> 'c -> 'c) -> 'c -> 'a Enum.t -> 'b Enum.t -> 'c   val find : ('a -> bool) -> 'a Enum.t -> 'a   val is_empty : 'a Enum.t -> bool   val peek : 'a Enum.t -> 'a option   val get : 'a Enum.t -> 'a option   val next : 'a Enum.t -> 'a   val push : 'a Enum.t -> 'a -> unit   val junk : 'a Enum.t -> unit   val clone : 'a Enum.t -> 'a Enum.t   val force : 'a Enum.t -> unit   val map : ('a -> 'b) -> 'a Enum.t -> 'b Enum.t   val mapi : (int -> 'a -> 'b) -> 'a Enum.t -> 'b Enum.t   val filter : ('a -> bool) -> 'a Enum.t -> 'a Enum.t   val filter_map : ('a -> 'b option) -> 'a Enum.t -> 'b Enum.t   val append : 'a Enum.t -> 'a Enum.t -> 'a Enum.t   val concat : 'a Enum.t Enum.t -> 'a Enum.t   exception No_more_elements   val empty : unit -> 'a Enum.t   val make :     next:(unit -> 'a) ->     count:(unit -> int) -> clone:(unit -> 'a Enum.t) -> 'a Enum.t   val from : (unit -> 'a) -> 'a Enum.t   val init : int -> (int -> 'a) -> 'a Enum.t   val count : 'a Enum.t -> int   val fast_count : 'a Enum.t -> bool end