anchor.diff:        ; Return element if it's not a cons.
         ((atom (car %gsbq))
             (cons (car %gsbq)
  -                (%backquote-1 (cdr %gsbq) %gsbqsub)))
  +                (%backquote-1 (cdr %gsbq))))
   
         ; Do QUASIQUOTE expansion.
         ((eq (car (car %gsbq)) 'QUASIQUOTE)
  -          (%backquote-quasiquote %gsbq %gsbqsub))
  +          (%backquote-quasiquote %gsbq))
   
         ; Do QUASIQUOTE-SPLICE expansion.
         ((eq (car (car %gsbq)) 'QUASIQUOTE-SPLICE)
  -          (%backquote-quasiquote-splice %gsbq %gsbqsub))
  +          (%backquote-quasiquote-splice %gsbq))
   
         ; Expand sublist and rest.
  -      (t  (cons (%backquote (car %gsbq) %gsbqsub)
  -                (%backquote-1 (cdr %gsbq) %gsbqsub))))))
  +      (t  (cons (%backquote (car %gsbq))
  +                (%backquote-1 (cdr %gsbq)))))))
   
  -;; Expand BACKQUOTE, check for nested BACKQUOTE (and increment sublevel) first.
  +;; Expand BACKQUOTE, check for nested BACKQUOTE first.
   (%set-atom-fun %backquote
  -  #'((%gsbq %gsbqsub)
  +  #'((%gsbq)
       (cond
         ; Return atom as is.
         ((atom %gsbq)
  
positive.code:       ; Enter new backquote level.
        ((eq (car %gsbq) 'BACKQUOTE)
       	  (cons 'BACKQUOTE
                  (%backquote (cdr %gsbq) (+ %gsbqsub 1))))
  
        ; No new backquote level, continue normally.
        (t  (%backquote-1 %gsbq %gsbqsub)))))
  
  ;; Initialise expansion with sublevel of 0.
  (%set-atom-fun backquote
    (special (%gsbq) (%backquote %gsbq 0)))
  
negative.code: 
  ;;; BACKQUOTE evaluation
  
  (%set-atom-fun quasiquote?
    #'((x)
      (cond
  	  ((consp x)
      	 (cond
  	       ((eq (car x) 'quasiquote)	     t)
  	       ((eq (car x) 'quasiquote-splice)  t))))))
  
  (%set-atom-fun %quasiquote-eval
    #'((%gsbq)
         (eval (car (cdr (car %gsbq))))))
  
  ;; Expand QUASIQUOTE.
  (%set-atom-fun %backquote-quasiquote
    #'((%gsbq)
      (cond
        ((not(quasiquote? (car (cdr (car %gsbq)))))
            (cons (copy-tree (%quasiquote-eval %gsbq))
                  (%backquote-1 (cdr %gsbq))))
  
        (t  (cons (copy-tree (car (cdr (car %gsbq))))
                  (%backquote-1 (cdr %gsbq)))))))
  
  ;; Expand QUASIQUOTE-SPLICE.
  (%set-atom-fun %backquote-quasiquote-splice
    #'((%gsbq)
      (cond
        ((not(quasiquote? (car (cdr (car %gsbq)))))
            (#'((%gstmp)
                 (cond
                   ; Ignore NIL evaluation.
                   ((not %gstmp)
                        (%backquote (cdr %gsbq)))
                   ((atom %gstmp)
                        (%error "QUASIQUOTE-SPLICE: list expected"))
                   (t   (%nconc (copy-tree %gstmp)
                        		  (%backquote-1 (cdr %gsbq))))))
                (%quasiquote-eval %gsbq)))
  
        (t  (cons (copy-tree (car (cdr (car %gsbq))))
                  (%backquote-1 (cdr %gsbq)))))))
  
  ;; Expand BACKQUOTE arguments.
  (%set-atom-fun %backquote-1
    #'((%gsbq)
      (cond
        ; Return atom as is.
        ((atom %gsbq)
  