 (defn ^boolean keyword? [x]
   (and ^boolean (goog/isString x)
        (identical? (.charAt x 0) \uFDD0)))
-
-(defn ^boolean symbol? [x]
-  (instance? Symbol x))
-
-(defn ^boolean number? [n]
-  (cljs.core/number? n))
-
-(defn ^boolean fn? [f]
-  (or ^boolean (goog/isFunction f) (satisfies? Fn f)))
 
 (defn ^boolean ifn? [f]
   (or (fn? f) (satisfies? IFn f)))


;;;;;;;;;;;;;;;;;;; symbols ;;;;;;;;;;;;;;;

(declare list instance? symbol? hash-combine hash)

(deftype Symbol [ns name str ^:mutable _hash _meta]
  Object


;;;;;;;;;;;;;;;;;;; fundamentals ;;;;;;;;;;;;;;;

(declare array-seq prim-seq IndexedSeq)

(defn ^seq seq
  "Returns a seq on the collection. If the collection is
