anchor.diff:  (defpackage charseq
     (:use :common-lisp)
  -  (:shadow length subseq)
  +  (:shadow length subseq = < > <= >= /=)
     (:export bounding-indices-bad-error
  +       invalid-index-error
          index
          charseq
         
  
positive.code: (defun length (#1=charseq)
    (declare (#1# #1#))
    (- (end #1#) (beg #1#)))
      
  (defun ref (#1=charseq index)
    (declare (#1# #1#)
         (index index))
    (char (str #1#) (+ (beg #1#) index)))
  
  (defmacro each ((char charseq &optional result) &body body)
    (let ((tmp (gensym))
  
negative.code: (defun make (string &key (start 0) (end (common-lisp:length string)))
    (declare (string string)
         (index start end))
    (unless (common-lisp:<= start end (common-lisp:length string))
      (error 'bounding-indices-bad-error
         :length (common-lisp:length string) :start start :end end))
   
  