functor (S : SymbolType) -> sig type t = S.t val equal : t -> t -> bool val hash : t -> int val to_string : t -> string val make : S.t -> S.t end