   IEquiv
   (-equiv [_ other]
     (cond
-      (instance? Keyword other)
+      (keyword? other)
       (= (name _) (name other))
       :else false))
   

  (Keyword. x))

(defn keyword? [x]
  (instance? Keyword x))

;; Symbol

(deftype Symbol [_name]
  IPrintable
  (-pr-str [_]
    _name)

  (Symbol. x))

(defn symbol? [x]
  (satisfies? ISymbol x))

;; LazySeq

