functor (T : BatOrd.Eq->   sig type t = T.t array val eq : T.t array BatOrd.eq end