The set needs to be immutable so you can call `add` multiple times. I think if it took `&'a mut self` and then returned a loan it would prohibit more invocations of `add` on the set.