I had to change Remove (including the comment). This has some advantages, though.
Remove, Clear, Add and Merge **have** to be able to return a new Set, otherwise it's impossible to have only one valid way to represent an empty set - nil. That advantage led me to these changes.