       (- shifted)
       shifted)))
 
-(defn encode [v]
+(defn encode-val [n]
   (let [sb (StringBuilder.)
-        vlq (to-vlq-signed v)]
+        vlq (to-vlq-signed n)]
     (loop [digit (bit-and vlq vlq-base-mask)
            vlq   (bit-shift-right-zero-fill vlq vlq-base-shift)]
       (if (pos? vlq)

                 (bit-shift-right-zero-fill vlq vlq-base-shift)))
        (.append sb (base64/encode digit))))
    (str sb)))

(defn decode [^String s]
  (let [l (.length s)]

  (decode "AAggBC") ; very clever way to encode large values
  (decode "AAggBCA") ; 5 values instead of 4

  (encode [0 0 16 1]) ; "AAgBC"

  (decode "IAWdD") ; (4 0 11 -14 -1) this is correct
  ;; gline N, gcol +4, file +0, line +11, col -14, name -1
