sig
  type 'a t
  val empty : 'GenLabels_intf.S.t
  val singleton : '-> 'GenLabels_intf.S.t
  val return : '-> 'GenLabels_intf.S.t
  val repeat : '-> 'GenLabels_intf.S.t
  val iterate : '-> ('-> 'a) -> 'GenLabels_intf.S.t
  val unfold : ('-> ('a * 'b) option) -> '-> 'GenLabels_intf.S.t
  val init : ?limit:int -> (int -> 'a) -> 'GenLabels_intf.S.t
  val is_empty : 'GenLabels_intf.S.t -> bool
  val fold : f:('-> '-> 'b) -> init:'-> 'GenLabels_intf.S.t -> 'b
  val reduce : f:('-> '-> 'a) -> 'GenLabels_intf.S.t -> 'a
  val scan :
    f:('-> '-> 'b) ->
    init:'-> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val unfold_scan :
    ('-> '-> 'b * 'c) ->
    '-> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val iter : f:('-> unit) -> 'GenLabels_intf.S.t -> unit
  val iteri : f:(int -> '-> unit) -> 'GenLabels_intf.S.t -> unit
  val length : 'GenLabels_intf.S.t -> int
  val map : f:('-> 'b) -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val mapi :
    f:(int -> '-> 'b) -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val fold_map :
    f:('-> '-> 'b) ->
    init:'-> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val append :
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val flatten :
    'GenLabels_intf.gen GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val flat_map :
    f:('-> 'GenLabels_intf.gen) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val mem : ?eq:('-> '-> bool) -> x:'-> 'GenLabels_intf.S.t -> bool
  val take : int -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val drop : int -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val nth : int -> 'GenLabels_intf.S.t -> 'a
  val take_nth : int -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val filter :
    f:('-> bool) -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val take_while :
    f:('-> bool) -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val fold_while :
    f:('-> '-> 'a * [ `Continue | `Stop ]) ->
    init:'-> 'GenLabels_intf.S.t -> 'a
  val drop_while :
    f:('-> bool) -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val filter_map :
    f:('-> 'b option) -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val zip_index : 'GenLabels_intf.S.t -> (int * 'a) GenLabels_intf.S.t
  val unzip :
    ('a * 'b) GenLabels_intf.S.t ->
    'GenLabels_intf.S.t * 'GenLabels_intf.S.t
  val partition :
    f:('-> bool) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t * 'GenLabels_intf.S.t
  val for_all : f:('-> bool) -> 'GenLabels_intf.S.t -> bool
  val exists : f:('-> bool) -> 'GenLabels_intf.S.t -> bool
  val min : ?lt:('-> '-> bool) -> 'GenLabels_intf.S.t -> 'a
  val max : ?lt:('-> '-> bool) -> 'GenLabels_intf.S.t -> 'a
  val eq :
    ?eq:('-> '-> bool) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> bool
  val lexico :
    ?cmp:('-> '-> int) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> int
  val compare :
    ?cmp:('-> '-> int) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> int
  val find : f:('-> bool) -> 'GenLabels_intf.S.t -> 'a option
  val sum : int GenLabels_intf.S.t -> int
  val map2 :
    f:('-> '-> 'c) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val iter2 :
    f:('-> '-> unit) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> unit
  val fold2 :
    f:('acc -> '-> '-> 'acc) ->
    init:'acc -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> 'acc
  val for_all2 :
    f:('-> '-> bool) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> bool
  val exists2 :
    f:('-> '-> bool) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> bool
  val zip_with :
    f:('-> '-> 'c) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val zip :
    'GenLabels_intf.S.t ->
    'GenLabels_intf.S.t -> ('a * 'b) GenLabels_intf.S.t
  val merge :
    'GenLabels_intf.gen GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val intersection :
    ?cmp:('-> '-> int) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val sorted_merge :
    ?cmp:('-> '-> int) ->
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val sorted_merge_n :
    ?cmp:('-> '-> int) ->
    'GenLabels_intf.S.t list -> 'GenLabels_intf.S.t
  val tee : ?n:int -> 'GenLabels_intf.S.t -> 'GenLabels_intf.gen list
  val round_robin :
    ?n:int -> 'GenLabels_intf.S.t -> 'GenLabels_intf.gen list
  val interleave :
    'GenLabels_intf.S.t -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val intersperse : '-> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val product :
    'GenLabels_intf.S.t ->
    'GenLabels_intf.S.t -> ('a * 'b) GenLabels_intf.S.t
  val group :
    ?eq:('-> '-> bool) ->
    'GenLabels_intf.S.t -> 'a list GenLabels_intf.S.t
  val uniq :
    ?eq:('-> '-> bool) -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val sort :
    ?cmp:('-> '-> int) -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val sort_uniq :
    ?cmp:('-> '-> int) -> 'GenLabels_intf.S.t -> 'GenLabels_intf.S.t
  val chunks : int -> 'GenLabels_intf.S.t -> 'a array GenLabels_intf.S.t
  val permutations : 'GenLabels_intf.S.t -> 'a list GenLabels_intf.S.t
  val permutations_heap :
    'GenLabels_intf.S.t -> 'a array GenLabels_intf.S.t
  val combinations :
    int -> 'GenLabels_intf.S.t -> 'a list GenLabels_intf.S.t
  val power_set : 'GenLabels_intf.S.t -> 'a list GenLabels_intf.S.t
  val of_list : 'a list -> 'GenLabels_intf.S.t
  val to_list : 'GenLabels_intf.S.t -> 'a list
  val to_rev_list : 'GenLabels_intf.S.t -> 'a list
  val to_array : 'GenLabels_intf.S.t -> 'a array
  val of_array : ?start:int -> ?len:int -> 'a array -> 'GenLabels_intf.S.t
  val of_string : ?start:int -> ?len:int -> string -> char GenLabels_intf.S.t
  val to_string : char GenLabels_intf.S.t -> string
  val to_buffer : Buffer.t -> char GenLabels_intf.S.t -> unit
  val rand_int : int -> int GenLabels_intf.S.t
  val int_range : ?step:int -> int -> int -> int GenLabels_intf.S.t
  val lines : char GenLabels_intf.S.t -> string GenLabels_intf.S.t
  val unlines : string GenLabels_intf.S.t -> char GenLabels_intf.S.t
  module Infix :
    sig
      val ( -- ) : int -> int -> int GenLabels_intf.S.t
      val ( >>= ) :
        'GenLabels_intf.S.t ->
        ('-> 'GenLabels_intf.gen) -> 'GenLabels_intf.S.t
      val ( >>| ) :
        'GenLabels_intf.S.t -> ('-> 'b) -> 'GenLabels_intf.S.t
      val ( >|= ) :
        'GenLabels_intf.S.t -> ('-> 'b) -> 'GenLabels_intf.S.t
    end
  val ( -- ) : int -> int -> int GenLabels_intf.S.t
  val ( >>= ) :
    'GenLabels_intf.S.t ->
    ('-> 'GenLabels_intf.gen) -> 'GenLabels_intf.S.t
  val ( >>| ) : 'GenLabels_intf.S.t -> ('-> 'b) -> 'GenLabels_intf.S.t
  val ( >|= ) : 'GenLabels_intf.S.t -> ('-> 'b) -> 'GenLabels_intf.S.t
  val pp :
    ?start:string ->
    ?stop:string ->
    ?sep:string ->
    ?horizontal:bool ->
    (Format.formatter -> '-> unit) ->
    Format.formatter -> 'GenLabels_intf.S.t -> unit
end