functor (S : Set.S) -> sig type a = S.t val eq : a -> a -> bool end