functor (A : ArbitraryComparable) (B : ArbitraryComparable->
  sig
    type 'a t = 'B.t A.t
    val gen :
      (?size:int -> Random.State.t -> 'a) ->
      ?size:int ->
      Random.State.t -> 'Reins.Types.Poly.ComposeGenComparable.t
    val to_string :
      ('-> string) -> 'Reins.Types.Poly.ComposeGenComparable.t -> string
    val compare :
      ('-> '-> int) ->
      'Reins.Types.Poly.ComposeGenComparable.t ->
      'Reins.Types.Poly.ComposeGenComparable.t -> int
  end