docs: def uncamel(name):
      """converts camelcase to underscore
      >>> uncamel('fooBar')
      'foo_bar'
      >>> uncamel('FooBar')
      'foo_bar'
      >>> uncamel('_fooBar')
      '_foo_bar'
      >>> uncamel('_FooBar')
      '__foo_bar'
      """
      response, name = name[0].lower(), name[1:]
      for n in name:
          if n.isupper():
              response += '_' + n.lower()
          else:
              response += n
      return response