 
 (defn get-non-excluded-macro-api
   [forms macro-api]
-  (let [ns-form (first (filter #(= 'ns (first %)) forms))
+  (let [ns-form (some #(= 'ns (first %)) forms)
         get-excludes #(match % ([:refer-clojure :exclude x] :seq) x :else nil)
         macro-names (->> ns-form (drop 2) (keep get-excludes) first (map str) set)]
     (remove #(macro-names (:name %)) macro-api)))

  "Get derived syntax forms from the given forms."
  [items]
  (let [make-sub-item (fn [info]
                        (when-let [parent (first (filter #(= (:syntax-form %) (:parent info)) items))]
                          (merge parent (base-syntax-item info))))
        sub-items (->> syntax
                       (filter :parent)

                (>= *cljs-num* 0)    (parse-clj-core)
                :else nil)
        match? #(= "destructure" (:name %))
        item (some match? items)]
    (-> item
        (dissoc :signature)
        (merge (base-syntax-item (syntax-map "destructure")))
