        query-builder
        construct))
     clojure.lang.IPersistentMap
-    (build-where [construct ^Select$Where query-builder]
+    (build-where [construct query-builder]
       (reduce
-       (fn [^Select$Where builder [column value]]
+       (fn [builder [column value]]
          (.and builder (eq (name column) value)))
        query-builder
        construct))))


  (extend-protocol WhereBuilder
    clojure.lang.IPersistentVector
    (build-where [construct ^Select$Where query-builder]
      (reduce
       (fn [^Select$Where builder [query-type column value]]
         (if-let [eq-type (query-type-map query-type)]
           (.and builder ((query-type-map query-type) (name column) value))
           (throw (IllegalArgumentException. (str query-type " is not a valid Clause")))

(defn where
  [m]
  [:where
   (fn where-query [query-builder]
     (build-where m (.where query-builder)))])

(defn order-by
