def find(obj, prs, forced_type=None, cls=anyconfig.models.processor.Processor):
    """
    :param obj:
        a file path, file, file-like object, pathlib.Path object or an
        'anyconfig.globals.IOInfo' (namedtuple) object
    :param prs: A list of :class:`anyconfig.models.processor.Processor` classes
    :param forced_type:
        Forced processor type of the data to process or ID of the processor
        class or :class:`anyconfig.models.processor.Processor` class object or
        its instance itself
    :param cls: A class object to compare with 'forced_type' later

    :return: an instance of processor class to process 'obj' data
    :raises: ValueError, UnknownProcessorTypeError, UnknownFileTypeError
    """
    if forced_type is not None:
        processor = maybe_processor(forced_type, cls=cls)
        if processor is not None:
            return processor

    pclss = findall(obj, prs, forced_type=forced_type, cls=cls)
    return pclss[0]()