 
 (defn ifequal-handler [args rdr]
   (let [tags (tag-content rdr :else :endifequal)
-        args (for [arg args]
+        args (for [^String arg args]
                (if (= \" (first arg)) 
-                 (.substring arg 1 (dec (count arg))) 
+                 (.substring arg 1 (dec (.length arg))) 
                  (keyword arg)))]
     (fn [context-map]
       (let [condition (apply = (map #(if (keyword? %) (% context-map) %) args))]        

                (.append buf ch)
                (recur (read-char rdr))))))
        ;add the leftover content of the buffer and return the template
        (conj! template (.toString buf))
        (persistent! template))))


(ns selmer.parser
  (:require [selmer.filter-parser :refer [compile-filter-body]]))

(set! *warn-on-reflection* true)

(def ^Character tag-open \{)
(def ^Character tag-close \})
