Excellent. Since SRFI 113 is now defined to provide linear update in
the sense of SRFI 1, it's sufficient to have the same interface with
the exception of the linear-update procedures, all of which end in !.
In addition, however, there should be order-specific procedures like
getting the next and previous elements in a set, and something to
convert a persistent set to a transient one. IIRC your proposal has
these already. You should check the Haskell libraries to see if anything
else is missing.
`eqv?` is the identity predicate of Scheme...
> This is one of the reasons I had an imap/monotone procedure in my draftWhat distinction are you making between monotone and non-decreasing?
> immutable library; monotone procedures are a common special case of
> injective function. In hindsight, though, I think it should be
> imap/nondecreasing instead of imap/monotone.
<https://en.wikipedia.org/wiki/Monotonic_function> says they are synonyms.
Perhaps the latter name is clearer, though.
No, only set-replace is special. All others use "first argument beats
second", where an element already in the set is understood to be first.