anchor.diff:    #+ecl (with-gensyms (tmp)
             `(let ((,tmp ,old))
                (eql ,tmp (mp:compare-and-swap ,place ,tmp ,new))))
  +  #+lispworks `(system:compare-and-swap ,place ,old ,new)
     #+sbcl `(sb-ext:compare-and-swap ,place ,old ,new)
  -  #-(or allegro ccl ecl sbcl)
  +  #-(or allegro ccl ecl lispworks sbcl)
     (signal-not-implemented 'atomic-cas))
   
   (defmacro atomic-decf (place &optional (delta 1))
  
positive.code:   #+allegro `(excl:incf-atomic ,place ,delta)
    #+ccl `(ccl::atomic-incf-decf ,place ,delta)
    #+ecl `(+ (mp:atomic-incf ,place ,delta) ,delta)
    #+sbcl `(+ (sb-ext:atomic-incf ,place ,delta) ,delta)
    #-(or allegro ccl ecl sbcl)
    (signal-not-implemented 'atomic-incf))
  
negative.code:   #+allegro `(excl:decf-atomic ,place ,delta)
    #+ccl `(ccl::atomic-incf-decf ,place (- ,delta))
    #+ecl `(- (mp:atomic-decf ,place ,delta) ,delta)
    #+lispworks `(system:atomic-decf ,place ,delta)
    #+sbcl `(- (sb-ext:atomic-decf ,place ,delta) ,delta)
    #-(or allegro ccl ecl sbcl)
    (signal-not-implemented 'atomic-decf))
  