sig
  type 'a t = ('-> unit) -> unit
  val empty : 'QCheck.Iter.t
  val return : '-> 'QCheck.Iter.t
  val ( <*> ) :
    ('-> 'b) QCheck.Iter.t -> 'QCheck.Iter.t -> 'QCheck.Iter.t
  val ( >>= ) :
    'QCheck.Iter.t -> ('-> 'QCheck.Iter.t) -> 'QCheck.Iter.t
  val map : ('-> 'b) -> 'QCheck.Iter.t -> 'QCheck.Iter.t
  val map2 :
    ('-> '-> 'c) ->
    'QCheck.Iter.t -> 'QCheck.Iter.t -> 'QCheck.Iter.t
  val ( >|= ) : 'QCheck.Iter.t -> ('-> 'b) -> 'QCheck.Iter.t
  val append : 'QCheck.Iter.t -> 'QCheck.Iter.t -> 'QCheck.Iter.t
  val ( <+> ) : 'QCheck.Iter.t -> 'QCheck.Iter.t -> 'QCheck.Iter.t
  val of_list : 'a list -> 'QCheck.Iter.t
  val of_array : 'a array -> 'QCheck.Iter.t
  val pair : 'QCheck.Iter.t -> 'QCheck.Iter.t -> ('a * 'b) QCheck.Iter.t
  val triple :
    'QCheck.Iter.t ->
    'QCheck.Iter.t -> 'QCheck.Iter.t -> ('a * 'b * 'c) QCheck.Iter.t
  val find : ('-> bool) -> 'QCheck.Iter.t -> 'a option
end