 
 (s/def ::ns-refer-clojure
   (s/spec (s/cat :clause #{:refer-clojure}
-                 :filters ::filters)))
+                 :refer-filters ::filters)))
 
 (s/def ::refer (s/or :all #{:all}
                      :syms (s/coll-of simple-symbol?)))

(s/def ::local-name (s/and simple-symbol? #(not= '& %)))

(s/def ::binding-form
  (s/or :sym ::local-name
        :seq ::seq-binding-form
        :map ::map-binding-form))

;; sequential destructuring

(s/def ::seq-binding-form
  (s/and vector?
         (s/cat :elems (s/* ::binding-form)
                :rest (s/? (s/cat :amp #{'&} :form ::binding-form))
                :as (s/? (s/cat :as #{:as} :sym ::local-name)))))

;; map destructuring


              :gen-class ::ns-gen-class)))

(s/def ::ns-form
  (s/cat :ns-name simple-symbol?
         :docstring (s/? string?)
         :attr-map (s/? map?)
         :ns-clauses ::ns-clauses))

(s/fdef clojure.core/ns
  :args ::ns-form)
