functor (A : Comparable) ->
  functor (B : Comparable) ->
    sig
      type 'a t = 'a B.t A.t
      val compare :
        ('a -> 'a -> int) ->
        'a Reins.Types.Poly.ComposeComparable.t ->
        'a Reins.Types.Poly.ComposeComparable.t -> int
      val to_string :
        ('a -> string) -> 'a Reins.Types.Poly.ComposeComparable.t -> string
    end