anchor.diff:            (%load-r s))))
   
   (defun %expand (x)
  -  (alet (quasiquote-expand (%%macroexpand (dot-expand x)))
  +  (alet (quasiquote-expand (tre:macroexpand (dot-expand x)))
       (? (equal x !)
          x
          (%expand !))))
  
positive.code: (load "cl/backquote-expand.lisp")
  (load "cl/read.lisp")
  (load "cl/argument-expand.lisp")
  
  (defun %%macroexpand (x)
    (!? *macroexpand-hook*
        (funcall ! x)
        x))
  
  (defmacro %defmacro (name args &body body)
    (print `(%defmacro ,name ,args))
  
negative.code: (defpackage :tre
    (:use :tre-core)
    (:export :%backquote :backquote :quasiquote :quasiquote-splice
             :macroexpand
             :square :curly :accent-circonflex $))
  
  (in-package :tre-core)
  