 
 ;;;;;;;;;;;;;;;;;;; symbols ;;;;;;;;;;;;;;;
 
-(declare list instance? symbol? hash-combine hash)
+(declare list hash-combine hash Symbol)
+
+(defn ^boolean instance? [t o]
+  (cljs.core/instance? t o))
+
+(defn ^boolean symbol? [x]
+  (instance? Symbol x))
 
 (deftype Symbol [ns name str ^:mutable _hash _meta]
   Object

         (recur ret (first ks) (next ks))
         ret))))

(declare fn?)

(defn with-meta
  "Returns an object of the same type and value as obj, with

(defn ^boolean keyword? [x]
  (and ^boolean (goog/isString x)
       (identical? (.charAt x 0) \uFDD0)))

(defn ^boolean ifn? [f]
  (or (fn? f) (satisfies? IFn f)))
