Sentence Pointer Handling ...
;   save the current position
(defn saveptr []
  (def atnsavesent
       (cons atnsent atnsavesent)))   ; push
;   pop the stack on success
(defn success []
  (def atnsavesent (rest atnsavesent)) )   ; pop
;   restore position on failure, return nil
(defn fail    []
  (def atnsent (first atnsavesent))
  (def atnsavesent (rest atnsavesent))
  (setword)
  nil)