functor (B1 : Base->
  functor (B2 : Base->
    sig
      type t = (B1.t, B2.t) Tools.case
      val compare : Tools.CaseB.t -> Tools.CaseB.t -> int
    end