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