anchor.diff:            ((defconst name expr &optional docstring)
              (expand-partially self `(defconstant ,name ,expr ,docstring)))
             ((defun name args &body body)
  -           (if *in-binding-form*
  +           (if *subenv*
                  (expand-partially self
                                    `(defalias ,name
                                       (named-lambda ,name ,args
  
positive.code:    :decls nil))
  
  (deftype expr () t)
  
  (adt:defdata binding
    (var symbol expr)
    (symbol-macro symbol expr)
    (fun symbol expr)
    ;; But of course we can't get the function.
    (macro symbol function))
  
  
negative.code: (defun augment/funs (funs &optional (subenv *subenv*))
    (make 'subenv
          :vars (.vars subenv)
          :funs (append (mapcar (lambda (spec)
                                  (fun (first spec) (rest spec)))
                                funs)
                        (.funs subenv))))
  
  ;;; Of course this isn't used at the moment.
  