On Thu, Jul 13, 2017 at 4:58 PM, Will Clinger <cesura17@gmail.com> wrote:

As it is possible to accept hash-only comparators without using hash tables at all, I do not understand John Cowan's response. 

At present, SRFI 113 implementations may require users to provide comparators with ordering predicates, and may require users to provide comparators with hash functions, but must not require users to provide both.  However, since there is no way to detect what the implementation actually does require, in practice users must provide both ordering predicates and hash functions, so the "must not require" is a nullity.

My intention is to change the above so that SRFI 113 implementations must accept comparators with hash functions with or without ordering predicates.  However, since I can't introduce new MUSTard into a final SRFI, I can only "strongly urge" implementers to provide this feature.  This is quite independent of whether the implementation is backed with a hash table, but the sample implementation in fact is backed with a hash table and already provides this feature.

On the other hand, I also do not understand why users would need "to detect statically whether the implementation provides hash sets and bags"

I think this means "sets and bags which can be created using hash-only comparators".

John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
Gules six bars argent on a canton azure 50 mullets argent
six five six five six five six five and six
   --blazoning the U.S. flag <http://web.meson.org/blazonserver>