       "        (do ((i 0 (fx1+ i)))",
       "            ((fx>= i len) res)",
       "          (vector-set! res i (apply f (_vector-list-ref i vecs)))))))")
+    self.define("vector-map!", via:
+      "(define (vector-map! f xs . xss)",
+      "  (let* ((vecs (cons xs xss))",
+      "         (len (_vector-list-length vecs)))",
+      "    (if (null? xss)",
+      "        (do ((i 0 (fx1+ i)))",
+      "            ((fx>= i len))",
+      "          (vector-set! xs i (f (vector-ref xs i))))",
+      "        (do ((i 0 (fx1+ i)))",
+      "            ((fx>= i len))",
+      "          (vector-set! xs i (apply f (_vector-list-ref i vecs)))))))")
     self.define("vector-for-each", via:
       "(define (vector-for-each f xs . xss)",
       "  (let* ((vecs (cons xs xss))",

    let res = Collection(kind: .vector)
    for expr in exprs {
      res.exprs.append(contentsOf: try expr.vectorAsCollection().exprs)
    }
    return .vector(res)
  }

      }
      res.append(vector.exprs[Int(i)])
      list = next
    }
    guard list.isNull else {
      throw EvalError.typeError(vectors, [.properListType])
    }
    return .makeList(res)
  }
