docs: async def _find_overlap(queries, client, find_method, get_method,
                          overlap_function):
      """Generic find and overlap implementation.
  
      Arguments
        names (:py:class:`collections.abc.Sequence`): The queries of the
          people to find overlaps for.
        client (:py:class:`~.TMDbClient`): The TMDb client.
        find_method (:py:class:`str`): The name of the client method to
          use for finding candidates.
        get_method (:py:class:`str`): The name of the client method to
          use for getting detailed information on a candidate.
        overlap_function (:py:class:`collections.abc.Callable`): The
          function to call for the resulting overlap.
  
      """
      results = []
      for query in queries:
          candidates = await getattr(client, find_method)(query)
          if not candidates:
              raise ValueError('no result found for {!r}'.format(query))
          result = await getattr(client, get_method)(id_=candidates[0].id_)
          results.append(result)
      return await overlap_function(results, client)