Examples that work as expected:
Examples that do not work as desired, but are changed by the proposed patch:
I looked through the rest of the code for similar cases, and found that there were some other differences between them in how different numbers of arguments were handled, such as:
+ conj handles an arbitrary number of arguments, but conj! does not.
+ assoc checks for a final key with no value specified (
CLJ-1052), but assoc! did not.
History/discussion: A discussion came up in the Clojure Google group about conj giving an error when taking only a coll as an argument, as opposed to disj which works for this case: