sig
type 'a t = 'a -> 'a QCheck.Iter.t
val nil : 'a QCheck.Shrink.t
val unit : unit QCheck.Shrink.t
val char : char QCheck.Shrink.t
val char_numeral : char QCheck.Shrink.t
val char_printable : char QCheck.Shrink.t
val int : int QCheck.Shrink.t
val int32 : int32 QCheck.Shrink.t
val int64 : int64 QCheck.Shrink.t
val option : 'a QCheck.Shrink.t -> 'a option QCheck.Shrink.t
val bytes : ?shrink:char QCheck.Shrink.t -> bytes QCheck.Shrink.t
val string : ?shrink:char QCheck.Shrink.t -> string QCheck.Shrink.t
val filter : ('a -> bool) -> 'a QCheck.Shrink.t -> 'a QCheck.Shrink.t
val int_aggressive : int QCheck.Shrink.t
val list : ?shrink:'a QCheck.Shrink.t -> 'a list QCheck.Shrink.t
val list_spine : 'a list QCheck.Shrink.t
val list_elems : 'a QCheck.Shrink.t -> 'a list QCheck.Shrink.t
val array : ?shrink:'a QCheck.Shrink.t -> 'a array QCheck.Shrink.t
val pair :
'a QCheck.Shrink.t -> 'b QCheck.Shrink.t -> ('a * 'b) QCheck.Shrink.t
val triple :
'a QCheck.Shrink.t ->
'b QCheck.Shrink.t ->
'c QCheck.Shrink.t -> ('a * 'b * 'c) QCheck.Shrink.t
val quad :
'a QCheck.Shrink.t ->
'b QCheck.Shrink.t ->
'c QCheck.Shrink.t ->
'd QCheck.Shrink.t -> ('a * 'b * 'c * 'd) QCheck.Shrink.t
val tup2 :
'a QCheck.Shrink.t -> 'b QCheck.Shrink.t -> ('a * 'b) QCheck.Shrink.t
val tup3 :
'a QCheck.Shrink.t ->
'b QCheck.Shrink.t ->
'c QCheck.Shrink.t -> ('a * 'b * 'c) QCheck.Shrink.t
val tup4 :
'a QCheck.Shrink.t ->
'b QCheck.Shrink.t ->
'c QCheck.Shrink.t ->
'd QCheck.Shrink.t -> ('a * 'b * 'c * 'd) QCheck.Shrink.t
val tup5 :
'a QCheck.Shrink.t ->
'b QCheck.Shrink.t ->
'c QCheck.Shrink.t ->
'd QCheck.Shrink.t ->
'e QCheck.Shrink.t -> ('a * 'b * 'c * 'd * 'e) QCheck.Shrink.t
val tup6 :
'a QCheck.Shrink.t ->
'b QCheck.Shrink.t ->
'c QCheck.Shrink.t ->
'd QCheck.Shrink.t ->
'e QCheck.Shrink.t ->
'f QCheck.Shrink.t -> ('a * 'b * 'c * 'd * 'e * 'f) QCheck.Shrink.t
val tup7 :
'a QCheck.Shrink.t ->
'b QCheck.Shrink.t ->
'c QCheck.Shrink.t ->
'd QCheck.Shrink.t ->
'e QCheck.Shrink.t ->
'f QCheck.Shrink.t ->
'g QCheck.Shrink.t -> ('a * 'b * 'c * 'd * 'e * 'f * 'g) QCheck.Shrink.t
val tup8 :
'a QCheck.Shrink.t ->
'b QCheck.Shrink.t ->
'c QCheck.Shrink.t ->
'd QCheck.Shrink.t ->
'e QCheck.Shrink.t ->
'f QCheck.Shrink.t ->
'g QCheck.Shrink.t ->
'h QCheck.Shrink.t ->
('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h) QCheck.Shrink.t
val tup9 :
'a QCheck.Shrink.t ->
'b QCheck.Shrink.t ->
'c QCheck.Shrink.t ->
'd QCheck.Shrink.t ->
'e QCheck.Shrink.t ->
'f QCheck.Shrink.t ->
'g QCheck.Shrink.t ->
'h QCheck.Shrink.t ->
'i QCheck.Shrink.t ->
('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h * 'i) QCheck.Shrink.t
end