functor (T : BatOrd.Comp->   sig type t = T.t list val compare : t BatOrd.comp end