anchor.diff:  
   DOCUMENTATION is a docstring describing the pattern. We recommend providing at least one example, and a \"See also\" section to refer to similar pattern classes.
   
  -PRE-INIT is an expression which will be inserted into the pattern creation function prior to initialization of the instance. Typically you'd use this for inserting `assert' statements, for example."
  +CREATION-FUNCTION is an expression which will be inserted into the pattern creation function prior to initialization of the instance. Typically you'd use this for inserting `assert' statements, for example."
     (let ((slots (mapcar #'alexandria:ensure-list slots))
           (name-pstream (intern (concatenate 'string (symbol-name name) "-PSTREAM") 'cl-patterns))
           (super-pstream (if (eq 'pattern (car superclasses))
  
positive.code: (defpattern pnary (pattern)
    (operator
     (patterns :initarg :patterns))
    "pnary yields the result of applying OPERATOR to each value yielded by each pattern in PATTERNS.")
  
  (defun pnary (operator &rest patterns)
    "pnary yields the result of applying OPERATOR to each value yielded by each pattern in PATTERNS."
    (make-instance 'pnary
                   :operator operator
                   :patterns patterns))
  
  (defmethod as-pstream ((pattern pnary))
    (with-slots (operator patterns) pattern
  
negative.code:                                                   (list))
                                                (list (list (car slot) (getf (cdr slot) :default))))
                                      (setf optional-used t))
                                    (list (car slot)))))))
               (make-defun (pre-init)
                 `(defun ,name ,(function-lambda-list slots)
                    ,documentation
                    ,@(when pre-init (list pre-init))
                    (set-parents
                     (make-instance ',name
                                    ,@(mapcan (lambda (i) (list (alexandria:make-keyword (car i)) (car i)))
                                              (remove-if #'state-slot-p slots))))))
               (add-doc-to-defun (sexp)
                 (if (and (listp sexp)
                          (position (car sexp) (list 'defun 'defmacro))
                          (not (typep (nth 3 sexp) 'string)))
                     (append (subseq sexp 0 3) (list documentation) (subseq sexp 3))
                     sexp)))
        `(progn
           (defclass ,name ,superclasses
             ,(mapcar #'desugar-slot (remove-if #'state-slot-p slots))
  