code: def first(self, x):
          
  
          def _find(x):
              try:
                  return self.all.index(str(x))
              except ValueError:
                  return None
  
          if _is_collection(x):
              for item in x:
                  found = _find(item)
                  if found is not None:
                      return found
              return None
          else:
              return _find(x)
docs: Returns first found index of given value (or list of values).