code: def to_long(base, lookup_f, s):
      
      prefix = 0
      v = 0
      for c in s:
          v *= base
          try:
              v += lookup_f(c)
          except Exception:
              raise ValueError("bad character %s in string %s" % (c, s))
          if v == 0:
              prefix += 1
      return v, prefix
docs: Convert an array to a (possibly bignum) integer, along with a prefix value
      of how many prefixed zeros there are.
      base:
          the source base
      lookup_f:
          a function to convert an element of s to a value between 0 and base-1.
      s:
          the value to convert