docs: def _next_argsig(s):
      """
      given a string, find the next complete argument signature and
      return it and a new string advanced past that point
      """
  
      c = s[0]
  
      if c in "BCDFIJSVZ":
          result = (c, s[1:])
  
      elif c == "[":
          d, s = _next_argsig(s[1:])
          result = (c + d, s[len(d) + 1:])
  
      elif c == "L":
          i = s.find(';') + 1
          result = (s[:i], s[i + 1:])
  
      elif c == "(":
          i = s.find(')') + 1
          result = (s[:i], s[i:])
  
      else:
          raise Unimplemented("_next_argsig is %r in %r" % (c, s))
  
      return result