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