I've also added make-dict to create an empty dictionary from a DTD and a comparator, and dict-copy, which can be based on it.
That's not the Right Thing. The comparator is an implementation detail of some types of dictionaries.
As an object passed to an implementation-specific constructor, yes. But all dictionaries must have an equality predicate, and in practice all of them except purely sequential dictionaries (lists) must have either an ordering predicate or a hash function that can be applied to the keys.