The intention of concurrent-modifiction-violation is for user code or
library code (as opposed to the primitives provided by the implementation)
to tell the outside world that you see something that can only happen if
another thread is mutating the data structure you're working on?  In other
words, it's informative?
I mean, it would be pretty costly if primitives are required to detect such
a situation in all cases.

The example given in the entry of concurrent-modification-violation seems
to detect only when the input list is truncated, but not when it's extended
or its car is altered, so it is not meant to cover all the cases, I assume.

Reply via email to