    (tag [_ _] "?")
    (rep [_ b] b)
    (str-rep [_ b] (str b)))
-  
+
  java.lang.Byte
  (reify Handler
    (tag [_ _] "i")

(extend-protocol Writerable
  OutputStream
  (make-writer [^OutputStream stm type opts]
    (Writer. 
     (case type
       :json (.createGenerator (JsonFactory.) stm)
       :msgpack (.createPacker (MessagePack.) stm))

  [^String s]
  (if (> (.length s) 0)
    (let [c (subs s 0 1)]
      (cond (and (= RESERVED c) (= ESC (subs s 1 2)))
            (subs s 1)

            (or (= ESC c) (= SUB c))
