functor (T1 : BatOrd.Ord) (T2 : BatOrd.Ord) (T3 : BatOrd.Ord->
  sig type t = T1.t * T2.t * T3.t val ord : t BatOrd.ord end