 
 (declare lex* string->ast ast->groups)
 
-(defn start-of-new-token? [s i]
+(defn start-of-new-token? [^String s ^Integer i]  
   (let [c (.charAt s i)
         nc (try
              (.charAt s (inc i))

        (and (= c \})
             (= nc \})))))

(defn buffer-string [s fileref i max offset line]
  (let [sb (StringBuffer.)]
    (loop [ni i]
      (if (or (>= ni max)

       rest-tokens]
      (throw (Exception. (str "parsing error after " a))))))

(defn find-close-tag [^clojure.lang.LazySeq tokens]  
  (let [[a b c & rest-tokens] tokens]
    (if (and (= (:token a) :open-tag)
             (string? (:token b))
