anchor.diff:      (setf index start)))
   
   (defmethod next ((iter iterator))
  -  (with-slots (index length increment id quiet cyclic initial-element
  -                     comparer bound-check initial-contents) iter
  -    (if (or (funcall bound-check index length) (eq length -1))
  +  (with-slots (index end increment id quiet cyclic initial-element
  +                     accessor bound-check initial-contents) iter
  +    (if (or (funcall bound-check index end) (eq end -1))
           (let ((current
                  (funcall id (cond
  -                             ((not (null initial-contents)) (funcall comparer index initial-contents))
  +                             ((not (null initial-contents)) (funcall accessor index initial-contents))
                                ((not (null initial-element)) initial-element)
                                (T index)))))
             (incf index increment)
  
positive.code: 
  (defmacro dosequences* (((var sequence &key result start end from-end)
                           &rest more-clauses) &body body)
    (let* ((all-args (cons (list var sequence :start start :length end
                                 :from-end from-end :result result) more-clauses))
           (key-args '(:start :length :from-end :result))
           (tmp-clauses (mapcar #'(lambda(x) (resolve-key-args x key-args nil)) all-args))
           (all-clauses (loop for (var sequence start end from-end result) in tmp-clauses
                           collect `(,var (make-iterator :start ,start :initial-contents ,sequence
                                                         :length ,end :from-end ,from-end) ,result))))
      `(do-sequence-iterators* ,all-clauses
         ,@body)))
  
  (defmacro dosequence ((var sequence &key result start end from-end) &body body)
    `(dosequences* ((,var ,sequence :result ,result :start ,start :length ,end :from-end ,from-end))
       ,@body))
  
negative.code:                      :documentation "A list/sequence of initial-contents to be iterated")
     (initial-element :initform nil :initarg :initial-element
                      :documentation "When supplied and no initial-contents supplied, iteration returns the value instead of the index")
     (bound-check :initform #'< :initarg :from-end
                  :documentation "When T, direction of iteration is from-end")
     (accessor :initform #'nth
               :documentation "Function to access to individual members of a initial-contents, #'nth for lists, #'elt for others")))
  
  (defmethod reset ((iter iterator))
  