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