anchor.diff:                               (html-safe (escape x))
                                x))))
                (flush ()
  -               (when buffer (%write buffer)))
  +               (when buffer
  +                 (%write buffer)
  +                 (setf buffer nil)))
                (%write (x)
                  (format stream "~a~%" (to-ruby-exp x))))
         (loop for i in (nreverse *buffer*)
  
positive.code: 
  (defmethod %eval ((x cons))
    (cond ((eq '= (car x))
           (emit (raw= (make-ruby-form (cdr x) t))))
          ((keywordp (car x))
           (process-tag x))
          ((and (symbolp (car x))
                (fboundp (car x)))
           (emit (eval x)))
          (t
           (emit (raw (make-ruby-form x))))))
  
  (defun process-tag (form)
    (multiple-value-bind (tag id classes) (parse-tag (car form))
  
negative.code: (defpackage :lisp-rails-view
    (:use :cl)
    (:shadow :#=))
  
  (in-package :lisp-rails-view)
  
  (defvar *buffer* nil)
  
  (defclass ruby-code ()
    ((value :initarg :value :accessor value)))
  
  (defclass =ruby-code (ruby-code) ())
  
  (defclass html-safe ()
    ((value :initarg :value :accessor value)))
  
  (defun ruby-code (x)
    (make-instance 'ruby-code :value x))
  
  (defun =ruby-code (x)
    (make-instance '=ruby-code :value x))
  
  (defun html-safe (x)
    (make-instance 'html-safe :value x))
  