type 'a gen
type 'a obs
type 'a shr
type ('a, 'b) t
val gen : 'a gen ‑> 'b gen ‑> ('a, 'b) t gen
val obs : 'a obs ‑> 'b obs ‑> ('a, 'b) t obs
val shrinker : 'a shr ‑> 'b shr ‑> ('a, 'b) t shr