PS An example would be the following implementation of `list->vector` (assuming that accesses to single locations are atomic):

(define list->vector
  (lambda (ls)
    (let ((n (length ls)))
      (do ((v (make-vector n))
           (i 0 (+ i 1))
           (ls ls (begin (unless (pair? ls)
                           (raise (make-concurrent-modification-violation)))
                         (cdr ls))))
          ((= i n) v)
        (vector-set! v i (car ls))))))

Am Mo., 13. Sept. 2021 um 08:37 Uhr schrieb Marc Nieper-Wißkirchen <xxxxxx@nieper-wisskirchen.de>:
For the next draft, I plan to add a new condition type, representing the Scheme equivalent of Java's concurrent modification exception:
(define-condition-type &concurrent-modification &violation
  make-concurrent-modification-violation concurrent-modification-violation?)
This violation can then be raised by code that detects concurrent modification 
of non-thread data structures.
Any comments?