sig
  val iter : f:('-> unit) -> 'Extlib.Enum.t -> unit
  val iter2 :
    f:('-> '-> unit) -> 'Extlib.Enum.t -> 'Extlib.Enum.t -> unit
  val exists : f:('-> bool) -> 'Extlib.Enum.t -> bool
  val for_all : f:('-> bool) -> 'Extlib.Enum.t -> bool
  val fold : f:('-> '-> 'a) -> init:'-> 'Extlib.Enum.t -> 'a
  val fold2 :
    f:('-> '-> '-> 'c) ->
    init:'-> 'Extlib.Enum.t -> 'Extlib.Enum.t -> 'c
  val iteri : f:(int -> '-> unit) -> 'Extlib.Enum.t -> unit
  val iter2i :
    f:(int -> '-> '-> unit) ->
    'Extlib.Enum.t -> 'Extlib.Enum.t -> unit
  val foldi : f:(int -> '-> '-> 'b) -> init:'-> 'Extlib.Enum.t -> 'b
  val fold2i :
    f:(int -> '-> '-> '-> 'c) ->
    init:'-> 'Extlib.Enum.t -> 'Extlib.Enum.t -> 'c
  val find : f:('-> bool) -> 'Extlib.Enum.t -> 'a
  val take_while : f:('-> bool) -> 'Extlib.Enum.t -> 'Extlib.Enum.t
  val drop_while : f:('-> bool) -> 'Extlib.Enum.t -> 'Extlib.Enum.t
  val map : f:('-> 'b) -> 'Extlib.Enum.t -> 'Extlib.Enum.t
  val mapi : f:(int -> '-> 'b) -> 'Extlib.Enum.t -> 'Extlib.Enum.t
  val filter : f:('-> bool) -> 'Extlib.Enum.t -> 'Extlib.Enum.t
  val filter_map :
    f:('-> 'b option) -> 'Extlib.Enum.t -> 'Extlib.Enum.t
  val from : f:(unit -> 'a) -> 'Extlib.Enum.t
  val from_while : f:(unit -> 'a option) -> 'Extlib.Enum.t
  val from_loop : init:'-> f:('-> 'b * 'a) -> 'Extlib.Enum.t
  val seq : init:'-> f:('-> 'a) -> cnd:('-> bool) -> 'Extlib.Enum.t
  val unfold : init:'-> f:('-> ('b * 'a) option) -> 'Extlib.Enum.t
  val init : int -> f:(int -> 'a) -> 'Extlib.Enum.t
  val switch :
    f:('-> bool) -> 'Extlib.Enum.t -> 'Extlib.Enum.t * 'Extlib.Enum.t
  val compare :
    ?cmp:('-> '-> int) -> 'Extlib.Enum.t -> 'Extlib.Enum.t -> int
  module LExceptionless :
    sig val find : f:('-> bool) -> 'Extlib.Enum.t -> 'a option end
end