anchor.diff:          ,value)))
   
   (defmacro inc (place &optional (delta #'1))
  -  #`(set ,place (+ ,place ,delta)))
  +  #`(setf ,place (+ ,place ,delta)))
   
   (defmacro dec (place &optional (delta #'1))
  -  #`(set ,place (- ,place ,delta)))
  +  #`(setf ,place (- ,place ,delta)))
   
   (defmacro assert (test &optional (msg #'"assertion failed"))
     #`(let ((result ,test))
  
positive.code: 
  (defun <list-iter> ((list <list>))
    (let ((iter (make <list-iter>)))
      (set (.list iter) list)
      (set (.i iter) 0)
      iter))
  
  (defmethod has-next ((iter <list-iter>))
  
negative.code:   (defun setter-name (getter-name)
      (string-concat getter-name "-setter")))
  
  (defmacro setf (place value)
    (if (symbol? place)
        #`(setq ,place ,value)
        #`(,(string-to-symbol (setter-name (symbol-name (compound-elt place 0))))
  