anchor.diff:  	      (make-map-as-undo-harray table new-undo-list))))))))
   
   (defun map-as-undo-harray--map-through-pairs (fn m)
  -  (let ((m (map-as-undo-harray-assure-current m)))
  +  (let* ((m (map-as-undo-harray-assure-current m))
  +         (tbl (map-as-undo-harray--harray m))
  +         (*maphash-htables* (cons tbl *maphash-htables*)))
       (maphash fn (map-as-undo-harray--harray m))))
   
   
  
positive.code: (defun mkSome (val)
    (cons ':|Some| val))
  
  (defvar *break-on-non-single-threaded-updates?* nil)
  ;;; (setq MapSTHashtable::*break-on-non-single-threaded-updates?* t)
  
  (defun map-as-undo-harray-assure-current (m)
  
negative.code: 	(let ((new-table (map-as-undo-harray--initial-harray)))
  	  (setf (gethash x new-table) y)
  	  (make-map-as-undo-harray new-table nil)))
      (let* ((m (map-as-undo-harray-assure-current m))
             (table (map-as-undo-harray--harray m)))
        ;(incf *map-as-undo-harray-set-count*)
        (let* ((last-undo-list (map-as-undo-harray--undo-list m))
  	     (old-val (gethash x table *undefined*)))
  	(if (eq y old-val)
  	    m				; Optimize special case
  	  (progn
              (when (member table *maphash-htables* :test 'eq)
                (setq table (copy-hash-table table))
                (setq m (make-map-as-undo-harray table nil)))
  	    (if (eq y *undefined*)
  		(progn (remhash x table))
  	      (progn (setf (gethash x table) y)))
  