                  \B (let [[array-type & array] (split (:value value) #",")]
                       (+ fixed-binary-array-tag-size
                          (* (count array)
-                            (condp = (first array-type)
+                            (case (first array-type)
                               \c 1
                               \C 1
                               \s 2

        (fn [op]
          (let [[tag value] (first (seq op))]
            (+ fixed-tag-size
               (condp = (first (:type value))
                 \A 1
                 \i 4
                 \f 4

    (catch EOFException e nil)))

(defn- write-tag-value [writer val-type value]
  (case val-type
    \A (lsb/write-bytes  writer (char value))
    \i (lsb/write-int    writer (Integer/parseInt value))
    \f (lsb/write-float  writer (Float/parseFloat value))
    \Z (lsb/write-string writer value)
    ;; \H nil
    \B (let [[array-type & array] (split value #",")]
         (case (first array-type)
           \c nil
           \C nil
           \s nil
