You’ve got it. `SortedSet` is backed by a Splay Tree, which is a sorted binary search tree. The tree rotates the node of interest toward the root whenever the user *accesses* the value, not when the user modifies the value. This has good caching properties and results in an *amortized* O(log n) for CRUD. In the interest of having O(1) access of `one()`, it returns whatever happens to be the root at the time of calling, which can change if the user calls, say, `sortedSet.has(value)`.

It may be that sorted set should return the min or max, which are O(log n), instead of the root for `one()`, which would solve this problem and probably others. The user can always `sortedSet.root.value` if they really care about O(1) (and they can even bind that property and react to rotation, if one can bear making that property observable on every visited root.