 
 (defn- resolver-entry
   [arg resolver]
-  (if (keyword? resolver)
+  (cond
+    (keyword? resolver)
     (if-let [f (get standard-resolver-factories resolver)]
       [arg (f arg)]
       (throw (ex-info (format "Keyword %s does not identify a known argument resolver." resolver)
-               {:arg arg :resolver resolver})))
-    (if (ifn? resolver)
-      [arg resolver]
-      (throw (ex-info (format "Argument resolver value `%s' is neither a keyword not a function." resolver)
-               {:arg arg :resolver resolver})))))
+                      {:arg arg :resolver resolver})))
+
+    (ifn? resolver)
+    [arg resolver]
+
+    :else
+    (throw (ex-info (format "Argument resolver value `%s' is neither a keyword not a function." resolver)
+                    {:arg arg :resolver resolver}))))
 
 (defn- maybe-resolver-by-tag
   [arg]

               {:arg arg :resolver-tags resolver-ks})))))

(defn- resolvers-for
  [arglist resolvers-map]
  (into {}
    (keep (fn [arg]

                                   (let [mw-sym (gensym "mw_sym__")]
                                     [(assoc middleware mw-spec mw-sym) mw-sym]))
            ns (-> verb-fn-sym namespace symbol the-ns)
            ;; Seems like we should just do the *ns* binding trick once
            ;; per namespace. Possilby as an additional map passed into
            ;; analyze*
            ns-metadata (meta ns)
            metadata (merge (reduce-kv (fn [out k v]
                                         (assoc out
