functor (P : Poly.ArbitraryComparable) (M : ArbitraryComparable->
  sig
    type t = M.t P.t
    val gen :
      ?size:int -> Random.State.t -> Reins.Types.Mono.ComposeGenComparable.t
    val to_string : Reins.Types.Mono.ComposeGenComparable.t -> string
    val compare :
      Reins.Types.Mono.ComposeGenComparable.t ->
      Reins.Types.Mono.ComposeGenComparable.t -> int
  end