sig
  type 'a t = '-> 'QCheck.Iter.t
  val nil : 'QCheck.Shrink.t
  val int : int QCheck.Shrink.t
  val option : 'QCheck.Shrink.t -> 'a option QCheck.Shrink.t
  val string : string QCheck.Shrink.t
  val list : ?shrink:'QCheck.Shrink.t -> 'a list QCheck.Shrink.t
  val array : ?shrink:'QCheck.Shrink.t -> 'a array QCheck.Shrink.t
  val pair :
    'QCheck.Shrink.t -> 'QCheck.Shrink.t -> ('a * 'b) QCheck.Shrink.t
  val triple :
    'QCheck.Shrink.t ->
    'QCheck.Shrink.t ->
    'QCheck.Shrink.t -> ('a * 'b * 'c) QCheck.Shrink.t
end