<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Mar 5, 2016, at 8:24 AM, Robert Cram <<a href="mailto:robert@robertcramconstruction.com">robert@robertcramconstruction.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=utf-8"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">The error message isn’t very illuminating, but anyway :test must designate only one of <span style="font-family: georgia, 'times new roman', times, serif; font-size: 16px; background-color: rgb(255, 255, 255);" class="">eq, eql, equal, or equalp.</span><div class=""><font face="georgia, times new roman, times, serif" size="3" class=""><span style="background-color: rgb(255, 255, 255);" class=""><br class=""></span></font></div><div class="">I have been puzzled by this, and would be grateful for an explanation, why one can’t provide any old test function.</div></div></blockquote><div><br></div><div>Because only test functions that separate objects into equivalence classes make sense as the test function to a hash table. What would a hash table whose test function was string-lessp do?</div><div><br></div><div>It makes sense to have string-equal hash table. The reason it’s not in the spec was probably just an oversight. (But note that packages are effectively string-equal hash tables.)</div><div><br></div><div>rg</div><div><br></div></div></body></html>