functor (B1 : Base->
  functor (B2 : Base->
    sig
      type t = B1.t * B2.t
      val compare : Tools.Pair2B.t -> Tools.Pair2B.t -> int
    end