   rdr)
 
 (defn macros [c]
-  (case c
-    \" read-string*
-    \: read-keyword
-    \; not-implemented ;; never hit this
-    \' (wrapping-reader 'quote)
-    \@ (wrapping-reader 'deref)
-    \^ read-meta
-    \` not-implemented
-    \~ not-implemented
-    \( read-list
-    \) read-unmatched-delimiter
-    \[ read-vector
-    \] read-unmatched-delimiter
-    \{ read-map
-    \} read-unmatched-delimiter
-    \\ read-char
-    \% not-implemented
-    \# read-dispatch
-    nil))
+  (cond
+   (identical? c \") read-string*
+   (identical? c \:) read-keyword
+   (identical? c \;) not-implemented ;; never hit this
+   (identical? c \') (wrapping-reader 'quote)
+   (identical? c \@) (wrapping-reader 'deref)
+   (identical? c \^) read-meta
+   (identical? c \`) not-implemented
+   (identical? c \~) not-implemented
+   (identical? c \() read-list
+   (identical? c \)) read-unmatched-delimiter
+   (identical? c \[) read-vector
+   (identical? c \]) read-unmatched-delimiter
+   (identical? c \{) read-map
+   (identical? c \}) read-unmatched-delimiter
+   (identical? c \\) read-char
+   (identical? c \%) not-implemented
+   (identical? c \#) read-dispatch
+   :else nil))
 
 ;; omitted by design: var reader, eval reader
 (defn dispatch-macros [s]
-  (case s
-    "{" read-set
-    "<" (throwing-reader "Unreadable form")
-    "\"" read-regex
-    "!" read-comment
-    "_" read-discard
-    nil))
+  (cond
+   (identical? s "{") read-set
+   (identical? s "<") (throwing-reader "Unreadable form")
+   (identical? s "\"") read-regex
+   (identical? s"!") read-comment
+   (identical? s "_") read-discard
+   :else nil))
 
 (defn read
   "Reads the first object from a PushbackReader. Returns the object read.

   (re-matches* float-pattern s) (match-float s)))

(defn escape-char-map [c]
  (case c
    \t "\t"
    \r "\r"
    \n "\n"
    \\ \\
    \" \"
    \b "\b"
    \f "\f"
    nil))

(defn read-unicode-char
  [reader initch]

     (identical? \" ch) (. buffer (toString))
     :default (recur (do (.append buffer ch) buffer) (read-char reader)))))

(defn special-symbols [t not-found]
  (cond
   (identical? t "nil") nil
   (identical? t "true") true
   (identical? t "false") false
   :else not-found))

(defn read-symbol
  [reader initch]
