`make-comparator``type-test``equality``ordering``hash`procedureReturns a comparator which bundles the

`type-test`,`equality`,`ordering`, and`hash`procedures provided. However, if`ordering`or`hash`is`#f`, a procedure is provided that signals an error on application. The predicates`comparator-ordered?`and/or`comparator-hashable?`, respectively, will return`#f`in these cases.Here are calls on make-comparator that will return useful comparators for standard Scheme types:

(make-comparator boolean? boolean=? (lambda (x y) (and (not x) y)) boolean-hash)

will return a comparator for booleans, expressing the ordering

`#f`<`#t`and the standard hash function for booleans.(make-comparator real? = < (lambda (x) (exact (abs x))))

will return a comparator expressing the natural ordering of real numbers and a plausible (but not optimal) hash function.

(make-comparator string? string=? string<? string-hash)

will return a comparator expressing the implementation's ordering of strings and the standard hash function.

(make-comparator string? string-ci=? string-ci<? string-ci-hash)

will return a comparator expressing the implementation's case-insensitive ordering of strings and the standard case-insensitive hash function.