                        :nilable #{`s/nilable}
                        :spec ::spec))
 
-(s/def ::defined-spec (s/with-gen
-                        ::spec-name
-                        #(do
-                           ;; ensure there is at least one defined spec
-                           (s/def :expound-generated-spec/base any?)
-                           (gen/elements
-                            (filter
-                             (fn [k] (= "expound-generated-spec" (namespace k)))
-                             (keys (s/registry)))))))
-
 (s/def ::name-combo
   (s/or
-   :one ::defined-spec
+   :one ::spec-name
    :combo (s/cat
            :operator #{'and 'or}
            :operands

     (doall (s/exercise spec-spec (exercise-count spec-spec)))
     (str "Failed to generate examples for spec " spec-spec))))

#?(:clj (deftest eval-gen-test
          #_(checking
             "expound returns string"
             (chuck/times num-tests)
             [spec-defs (s/gen ::spec-defs)
              form gen/any-printable]
             (s/def :expound-generated-spec/base any?)
             (doseq [spec-def spec-defs]
               (eval spec-def))
             (is (string?
                  (expound/expound-str (second (last spec-defs)) form)))
             ;; TODO - restore to ensure I can catch issues
             #_(is (not
                    (clojure.string/includes?
                     (expound/expound-str (second (last spec-defs)) form)
                     "should be")))
           ;; Get access to private atom in clojure.spec
             (def spec-reg (deref #'s/registry-ref))
             (doseq [k (filter
                        (fn [k] (= "expound-generated-spec" (namespace k)))
                        (keys (s/registry)))]
               (swap! spec-reg dissoc k)))))

(deftest clean-registry
  (testing "only base spec remains"

            [clojure.walk :as walk]
            [spec-tools.data-spec :as ds]
            [expound.ansi :as ansi]
            [clojure.test.check.random :as random]
            [clojure.test.check.rose-tree :as rose]
            #?(:clj [orchestra.spec.test :as orch.st]
               :cljs [orchestra-cljs.spec.test :as orch.st])))

