KeyedSemElemSet: add a hash() function