anchor.diff:    (let ((bindings
            (loop
               for (name value) in (read-tal-expression-from-string
  -				 (pull-attrib-val tag 'tal::let))
  +				 (pull-attrib-val! tag 'tal::let))
               collect `(cons ',name ,value))))
       `(let ((-tal-environment- (extend-environment (list (list ,@bindings)) -tal-environment-)))
          ,(transform-lxml-form tag))))
  
positive.code: 
  (def-attribute-handler tal::when (tag)
    (let ((value (read-tal-expression-from-string
  		(pull-attrib-val tag 'tal::when))))
      `(when ,value
         ,(transform-lxml-form tag))))
  
  (def-attribute-handler tal::unless (tag)
    (let ((value (read-tal-expression-from-string
  		(pull-attrib-val tag 'tal::unless))))
      `(unless ,value
         ,(transform-lxml-form tag))))
  
  
negative.code: 
  (def-attribute-handler tal::replace (tag)
    (let ((value (read-tal-expression-from-string
  		(pull-attrib-val! tag 'tal::replace))))
      (when value
        (let ((escape (if-bind escape (pull-attrib-val! tag 'tal::escape-html)
  		      ;; if they supplied a vlaue then use it (either nil
  		      ;; or t or whatever)
  		      (read-tal-expression-from-string escape)
  