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