After reviewing all of the discussion in this thread concerning XHashTable, I find that I now agree with Ralf's original response. Perhaps it is not a good design decision to pass a custom equality when creating an XHashTable. In fact, I would go further and claim that this also applies to the passing of a custom hash function which is permitted in the current implementation of XHashTable. This "extra" feature of XHashTable should be removed.
It seemed overly ridged at first to insist on enforcing the contract between the = and hash functions at the category level because this forces the creation of a new domain in the case I had in mind, i.e. using XHashTable in Kernel instead of SortedCache. But now I begin to see this as the best option. Perhaps what I want is something we might call "InnerKernel" which exports a much simpler (cheaper) kind of equality and an associated hash function. Then I would use InnerKernel together with XHashTable in the Kernel domain itself to implement a more "mathematical" equality. And now I also think Ralf and Waldek were right to claim that really this has more to do with representation than I was initially willing to admit. That said, I really do want to get back to the original subject of this thread: adding missing hash functions to Expression and to those domains on which Expression is dependent. -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/fricas-devel. For more options, visit https://groups.google.com/d/optout.
