functor (T1 : BatOrd.Eq->
  functor (T2 : BatOrd.Eq->
    functor (T3 : BatOrd.Eq->
      sig type t = T1.t * T2.t * T3.t val eq : t BatOrd.eq end