anchor.diff:                                    ((symbol? p) (symbol-name p))
                                     (t (error "~S" p)))))))
   
  -(defmarco (define-walker name implicit-vars . domain-lit)
  +(defmarco (define-walker name implicit-vars)
     (let* ((form-name name)
            (recurse-name (compound-symbol name "-recurse"))
  -         (forms-name (compound-symbol name "-forms"))
            (define-name (compound-symbol "define-" name))
            (alist-name (compound-symbol name "-alist")))
       (quasiquote (definitions
  -      (unquote-splicing (if (null? domain-lit) ()
  -        (let* ((domain (eval (car domain-lit)))
  -               (unit (first domain))
  -               (reduce (second domain))
  -               (replace-2 (third domain)))
  -          (quasiquote (
  -      (define ((unquote forms-name) forms (unquote-splicing implicit-vars))
  -        ((unquote reduce) (form forms)
  -          ((unquote form-name) form (unquote-splicing implicit-vars))))
  -
  -      (define ((unquote recurse-name) forms (unquote-splicing implicit-vars))
  -        ((unquote replace-2) forms ((unquote forms-name) (cddr forms)
  -                                             (unquote-splicing implicit-vars))))
  -
  -)))))
  -
  -         
         (define (unquote alist-name) ())
   
         (define ((unquote form-name) form (unquote-splicing implicit-vars))
  
positive.code: ;;; (lambda (...) ... (define x ...) ...)
  ;;; => (lambda (...) (begin ((x)) ... (define x ...) ...))
  
  (define-walker collect-defines-aux (cell) ignore-domain)
  
  (define-collect-defines-aux (define var . val)
    (rplaca cell (cons (list var) (car cell)))
  
negative.code:     (codegen program dest-discard 0 0 general-registers out)
      (emit-program-epilogue out)))
  
  (define-trivial-walker codegen-sections (out))
  
  (define-codegen-sections (quote quoted)
    (rplaca (cdr form) (list (cons 'value (codegen-quoted quoted out))
  