functor (Ord : Ord) -> sig type t = Ord.t val eq : t eq end