So this is the only line that differentiates `one` from `only`, which is interesting. The analogous line should probably be added to `only`, where it would actually only have the effect of preventing change propagation.  For this binding, it might be more appropriate to use `collection.has(value)`, because `one` does not consistently report the same value across all collections or starting conditions.  For example, `SortedSet` returns the root of the splay tree, which changes depending on what node was most recently *accessed*. That could lead to very strange bugs here. Would using `has` solve all the same problems?