anchor.diff:         "Parse successfully if the next object satisfies the type ~W.
   
   If the next object does not satisfy the type then this function does
  -not move the iterator."
  +not modify the input sequence."
          type)
        (parser-try
          (parse-object-of-type ',type))))
  
positive.code:   (:import-from :shcl/core/utility #:optimization-settings #:required #:make-extensible-vector #:symbol-nconc-intern #:symbol-nconc-gensym #:progn-concatenate)
    (:import-from :shcl/core/advice #:define-advisable)
    (:import-from :shcl/core/data #:define-data #:define-cloning-setf-expander #:clone)
    (:import-from :shcl/core/iterator #:iterator #:do-iterator #:make-computed-iterator #:emit #:stop)
    (:import-from :shcl/core/sequence #:head #:tail #:empty-p #:attach #:empty-of #:walk #:popf #:attachf)
    (:import-from :fset)
    (:import-from :alexandria #:hash-table-keys)
    (:export
  
negative.code: Use `choice-errors' to access the errors produced by the potential
  parses."))
  
  (defmethod print-error ((err choice) stream)
    (when (empty-p (choice-errors err))
      (return-from print-error
        (format stream "No choice but to fail the parse")))
    (format stream "Tried multiple parses that all failed")
    (let ((errors (choice-errors err)))
      (do-while-popf (error errors)
        (format stream "~%")
        (print-error error stream))))
  
  (define-data unconditional-failure (parser-error)
    ()
  