functor (T : BatOrd.Ord-> sig type t = T.t list val ord : t BatOrd.ord end