                       :opt-un [:fig-opt/car
                                :fig-opt/house]))
 
-;; this is really rough
-(defn seq-spec? [k]
-  {:pre [(keyword? k)]}
-  (s/regex? (spec-from-registry k)))
-
-(defn map-spec? [k]
-  {:pre [(keyword? k)]}
-  (prn k)
-  (#{'strict-keys 'keys}
-   (let [d (s/describe k)]
-     (and (sequential? d) (first d)))))
-
-(defn get-keys [k]
-  (->> k
-       s/describe
-       rest
-       (apply parse-keys-args)))
+
 
 ;; we are dealing with a datatype
 ;; a list of paths Monoid

(defn path-set-intersect [list-of-path-sets]
  (apply set/intersection list-of-path-sets))



(defn key-paths [desc]
  {:pre [(sequential? desc)]}
  (let [{:keys [known-keys k->s]} (apply parse-keys-args (rest desc))]
    (path-set-join
     (map #(path-set-cons (hash-map :ky % :ky-spec (k->s %)) (poss-path (k->s %)))
      known-keys))))

;; DecribeKeyedVals -> [DecribeVal]

       (sort-by (comp - second))
       ffirst))



(comment
  (s/explain :fig-opt/build-config {:id "asdf", :source-paths [""], :assert 1})
  
  (replacement-suggestion (parse-keys-args
                            :opt-un [:fig-opt/http-server-root
                                     :fig-opt/server-port
