anchor.diff:         (let ((*autoescape* nil))
            (funcall ,fun-name data)))))
   
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +;;; proclaim funcitons
  +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  +
  +(defun proclaim-template-functions (expr)
  +  (let ((*package* (if (second expr)
  +                       (make-template-package (second expr))
  +                       *default-translate-package*)))
  +    (iter (for tmpl in (cddr expr))
  +          (let ((symbol (intern (lispify-string (car (second tmpl))))))
  +            (export symbol)
  +            (proclaim (list 'ftype 'function symbol))))))
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;; translate and compile template methods
  
positive.code: 
  (defmethod translate-template ((backend (eql :common-lisp-backend)) template)
    (translate-template (make-instance 'common-lisp-backend)
                      template))
  
  (defmethod compile-template ((backend (eql :common-lisp-backend)) template)
    (compile-template (make-instance 'common-lisp-backend)
                      template))
  
  (defmethod compile-template ((backend common-lisp-backend) template)
    (eval (translate-template backend template)))
  
  (defmethod compile-template ((backend common-lisp-backend) (templates list))
    (iter (for template in templates)
          (compile-template backend template)))
  
negative.code:   (let ((*package* (if (car args)
                         (make-template-package (car args))
                         *default-translate-package*)))
      (translate-item backend
                    (cdr args))))
  
  