Guard against out-of-bounds positions.
Changed numeric parse from int to long.

Why not.  Internally, I believe that JVM Clojure uses Longs
internally anyways.

OTOH, the only valid numeric inputs are 0, 1 or 2; a long
for what a byte or short would cover is overkill.