   (Keyword. x))
 
 (defn keyword? [x]
-  (instance? Keyword x))
+  (satisfies? IKeyword x))
 
 ;; Symbol
 
+(defprotocol ISymbol) ; Marker protocol for mimics
+
 (deftype Symbol [_name]
+  ISymbol
+
   IPrintable
   (-pr-str [_]
     _name)

  (Symbol. x))

(defn symbol? [x]
  (instance? Symbol x))

;; LazySeq


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