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


(defn get-non-excluded-macro-api
  [forms macro-api]
  (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)))

                      (>= *cljs-num* 1933) {:ns "special" :name "try"}
                      (>= *cljs-num* 0)    {:ns "cljs.core" :name "try"}
                      :else nil)
        try-form (first (filter #(= (select-keys % [:ns :name]) try-ns-name) parsed))
        get-sigs (fn [name-]
                   ;; parse docstring for signature of `catch` and `finally`:
                   ;;
