sig   type 'a t =       Nil : unit QCheck.Tuple.t     | Cons : 'a * 'QCheck.Tuple.t -> ('a * 'b) QCheck.Tuple.t   val nil : unit QCheck.Tuple.t   val cons : '-> 'QCheck.Tuple.t -> ('a * 'b) QCheck.Tuple.t   type 'a obs   val o_nil : unit QCheck.Tuple.obs   val o_cons :     'QCheck.Observable.t ->     'QCheck.Tuple.obs -> ('a * 'b) QCheck.Tuple.obs   module Infix :     sig       val ( @:: ) : '-> 'QCheck.Tuple.t -> ('a * 'b) QCheck.Tuple.t       val ( @-> ) :         'QCheck.Observable.t ->         'QCheck.Tuple.obs -> ('a * 'b) QCheck.Tuple.obs     end   val ( @:: ) : '-> 'b t -> ('a * 'b) t   val ( @-> ) : 'Observable.t -> 'b obs -> ('a * 'b) obs   val observable :     'QCheck.Tuple.obs -> 'QCheck.Tuple.t QCheck.Observable.t end