I provide a hash tree (a kind of KeyedSet) that does not modify itself. I am written for Squeak 5.x, where x is at least 2. I am currently in very early development.