anchor.diff:    "Set PDEF-KEY's KEY in its plist to VALUE."
     (pdef-ref pdef-key (plist-set (pdef-ref pdef-key) (alexandria:make-keyword key) value)))
   
  -(defpattern pdef (pattern) ;; FIX: need 'reset' method.
  +(defpattern pdef (pattern)
     ((key :initarg :key :reader pdef-key)
      (ps :initarg :ps :initform nil)
      (loop-p :initarg :loop-p :initform t :accessor loop-p))
  
positive.code:   "A pfunc returns the result of the provided function FUNC.")
  
  (defun pfunc (func)
    "Create an instance of the PFUNC class."
    (make-instance 'pfunc
                   :func func))
  
  
negative.code:       (decf-remaining pattern 'crr)
        cv)))
  
  ;;; pdef
  ;; NOTE: the pattern in a pdef will repeat automatically. if the pattern in a pdef is redefined, it switches the next time the current one ends.
  ;; if you want the pdef to stop after its current loop, set it to nil like so: (pdef KEY nil)
  
  