I was happy to see that the idea of using
nothing to indicate removing an entry was removed from the PR #25697, which would have broken a lot of code (we used
nothing to indicate JSON
null), and I think there is a cleaner way that the functionality of being able to also remove items in a non-breaking fashion.
Now that replacements are done using
key => value, a wrapper type could be constructed to indicate that the key is to be removed instead, i.e.
struct Delete ; val::Any ; end), in a similar fashion that
EqualsTo are used to wrap values for the
find* functions now.