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