anchor.diff:               (add-doc-to-defun (sexp)
                  (if (and (listp sexp)
                           (position (car sexp) (list 'defun 'defmacro))
  -                        (not (typep (nth 3 sexp) 'string)))
  +                        (not (stringp (nth 3 sexp))))
                      (append (subseq sexp 0 3) (list documentation) (subseq sexp 3))
                      sexp)))
         `(progn
  
positive.code: (defmethod print-object ((pbind pbind) stream)
    (format stream "#<~s~{ ~s ~s~}>" 'pbind (slot-value pbind 'pairs)))
  
  (defmacro pb (name &body pairs) ;; FIX: should automatically convert +, *, -, /, etc to their equivalent patterns.
    "pb is a convenience macro, wrapping the functionality of `pbind'. NAME is a keyword for the name of the pattern (same as pbind's :pdef key or `pdef' itself), and PAIRS is the same as in regular pbind.
  
  See also: `pbind', `pdef'"
    `(pbind :pdef ,name ,@pairs))
  
  (defclass pbind-pstream (pbind pstream)
    ())
  
  (defun as-pstream-pairs (pairs)
    (let ((results (list)))
  
negative.code: 
  (defun all-patterns ()
    "Get a list of all defined patterns."
    (remove-if (lambda (s) (eql s 'pstream))
               (mapcar #'class-name (closer-mop:class-direct-subclasses (find-class 'pattern)))))
  
  (defmethod (setf quant) (value (pattern pattern))
  