Further improve performance and work around stupid D AA behavior.

Always dangerous to use AAs with custom types... (need to define opCmp, opEquals and toHash, or the results will be totally unexpected).