docs: def find_first(pred, lst):
      """Find the first result of a list of promises `lst` that satisfies a
      predicate `pred`.
  
      :param pred: a function of one argument returning `True` or `False`.
      :param lst: a list of promises or values.
      :return: a promise of a value or `None`.
  
      This is a wrapper around :func:`s_find_first`. The first item on the list
      is passed *as is*, forcing evalutation. The tail of the list is quoted, and
      only unquoted if the predicate fails on the result of the first promise.
  
      If the input list is empty, `None` is returned."""
      if lst:
          return s_find_first(pred, lst[0], [quote(l) for l in lst[1:]])
      else:
          return None