     (doall (type-check 'Figwheel {:figheel true
                                   :cljsbuild 5})))
 
+
+(contains? (set [1 2 3]) 3)
 ;; error messages
+#_(pp)
+(defn parent-is-sequence? [{:keys [type-sig path]}]
+  (and (integer? (first path))
+       ((set (map last (*schema-rules* [:=> (second type-sig)]))) :SEQQ)))
 
 (defmulti predicate-explain (fn [pred _] pred))
 


#_(pp)

(defmethod print-error :failed-predicate [{:keys [path value type-sig] :as error}]
  (pprint-document (print-path-error error
                                     [:group
                                      (color (pr-str (first path)) :bold)
                                      " "
                                      (color (with-out-str
                                               (print value))
                                             :red)
                                      [:line " <- "]
                                      (color (str "^ key " (pr-str (first path)) " has wrong value")
                                             :underline :magenta)
                                      :line]
                                     (document-key (first (rest type-sig)) (first path)))
                   {:width 40}))

(defmethod print-error :combined-failed-predicate [{:keys [path value type-sig] :as error}]
  (pprint-document (print-path-error error
                                     [:group
                                      (color (pr-str (first path)) :bold)
                                      " "
                                      (color (with-out-str
                                               (print value))
                                             :red)
                                      [:line " <- "]
                                      (color (str "^ key " (pr-str (first path)) " has wrong value")
                                             :underline :magenta)
                                      :line]
                                     (document-key (first (rest type-sig)) (first path)))
                   {:width 40}))

(defmethod print-error :misspelled-key [{:keys [key correction orig-error orig-config type-sig] :as error}]
  (pprint-document (print-path-error error
                                     [:group
                                      (color (pr-str key) :red)
                                      " "
                                      (with-out-str
                                               (print (:value orig-error)))
                                      [:line " <- "]
                                      (color (str "^ key " (pr-str key) " is spelled wrong")
                                             :underline :magenta)
                                      :line]
                                     (document-key (first type-sig) correction))
                   {:width 40}))


     :correct-paths (get-paths-for-type root-type typ)
     :confidence :high}))

(defn misspelled-misplaced-key [root-type parent-type bad-key value]
  (for [[ky _ [other-parent-type _ typ]] (*schema-rules* :-)
        :when (and
