       (if (< i as-len)
         (let [a (aget as i)
               b (aget bs i)]
-          (if (or (and (identical? (typeof a) (typeof b))
-                       (< a b))
-                  (< (typeof a) (typeof b)))
-            true
-            false))
+          (or (and (identical? (typeof a) (typeof b))
+                   (< a b))
+              (< (typeof a) (typeof b))))
         false))))
 
 (defn ^boolean key-gt [as bs]

       (dotimes [i 500000]
         (.assoc! tree (if (even? i) #js [i i i] #js [(str i) (str i) (str i)]) (* 2 i))))))

  (g)

  (defn h []
    (time

      (if (< i as-len)
        (let [a (aget as i)
              b (aget bs i)]
          (or (and (identical? (typeof a) (typeof b))
                   (> a b))
              (> (typeof a) (typeof b))))
        false))))

(defn ^boolean key-lte [as bs]
