anchor.diff:    (propogate then operator)
     (propogate (car else) operator))
   
  +(define-simplify (return attrs body)
  +  (overwrite-form form body)
  +  (propogate body (list 'return attrs)))
  +
  +(define-simplify (varargs-return attrs arg-count body)
  +  (overwrite-form form body)
  +  (propogate body (list 'varargs-return attrs arg-count)))
  +
   (define (propogate-recurse-last form rest operator)
     (if (null? rest)
         (propogate form operator)
  
positive.code: (define-propogate (begin attrs . body)
    (propogate-recurse-last (car body) (cdr body) operator))
  
  (define-simplify (return attrs body)
    (overwrite-form form body)
    (propogate body (list 'return attrs)))
  
  (define-simplify (varargs-return attrs arg-count body)
    (overwrite-form form body)
    (propogate body (list 'varargs-return attrs arg-count)))
  
  ;;; We currently conflate character and numbers.  So eliminate
  ;;; character-related operators:
  
negative.code:                      c-call))
  
  (define internal-keywords '(ref call return varargs-return
                              tail-call varargs-tail-call
                              make-box box-ref box-set!
                              check-arg-count arg-count
                              negate
  