anchor.diff:  (defmacro setq (name value)
     #`(%%setq ,name ,value))
   
  -;;;; Common stuff
  +;;;; Lexical variables
   
   (defmacro defvar (name &optional (value #'nil))
     #`(defparameter ,name (if (defined? ,name) ,name ,value)))
   
   (defmacro defun (name sig &rest body)
     #`(defparameter (function ,name) (lambda ,sig ,@body)))
  -
  -(defmacro when (test &rest consequent)
  -  #`(if ,test (progn ,@consequent) nil))
  -
  -(defmacro unless (test &rest alternative)
  -  #`(if ,test nil (progn ,@alternative)))
   
   (defmacro let (bindings &rest body)
     #`(funcall (lambda ,(compound-map (lambda (b) 
  
positive.code: (defmethod = ((a object) (b object))
    (eq a b))
  
  ;;;; Numbers
  
  (defmacro define-jsnums-binop (name jsnums-name)
    #`(progn
        (defgeneric ,name (a b))
        (defmethod ,name ((a number) (b number))
          #{ jsnums.~(native-snippet ,jsnums-name)(~a, ~b) #})))
  
  (define-jsnums-binop = "equals")
  (define-jsnums-binop > "greaterThan")
  (define-jsnums-binop < "lessThan")
  (define-jsnums-binop / "divide")
  (define-jsnums-binop * "multiply")
  (define-jsnums-binop + "add")
  (define-jsnums-binop - "subtract")
  
  ;;;; Printing
  
  (defmethod show ((a object))
    #{ JSON.stringify(~a) #})
  
negative.code: (defun not (x)
    (if x #f #t))
  
  ;;;; (Slightly) Generalized references
  
  (eval-when-compile
    (defun setter-name (getter-name)
  