anchor.diff:  
   (declaim (inline checkpoint))
   (defun checkpoint (ctx)
  -  (vector-push-extend (parser-context-cursor ctx) (parser-context-checkpoints ctx)))
  +  (push (parser-context-cursor ctx) (parser-context-checkpoints ctx)))
   
   (declaim (inline rollback))
   (defun rollback (ctx)
  -  (setf (parser-context-cursor ctx) (vector-pop (parser-context-checkpoints ctx))))
  +  (setf (parser-context-cursor ctx) (pop (parser-context-checkpoints ctx))))
   
   (declaim (inline commit))
   (defun commit (ctx)
  -  (vector-pop (parser-context-checkpoints ctx)))
  +  (pop (parser-context-checkpoints ctx)))
   
   
   ;;; Atom, Rule & Type Matching
  
positive.code: 		       (with-unique-names (ret)
  			 `(progn
  			    (checkpoint ,ctx)
  			    (let ((,ret ,(compile-expr (cadr form))))
  			      (if ,ret
  				  (commit ,ctx)
  				  (rollback ,ctx))
  
negative.code:   (data nil :read-only t :type string)
    (size nil :read-only t :type unsigned-byte)
    (cursor 0 :type unsigned-byte)
    (checkpoints nil)
    attachment)
  
  (defgeneric create-parser-context (input &rest args))
  