Reverted to using Set (instead of HashSet) as the representation for LrParserState -- the overhead of computing the hash code was greater than the savings.