def delete_files_template(get_s3_client_func, get_bucket_func, delete_keys_func, key_list, s3_bucket):

    """
    Curried template function for deleting files from an S3 bucket

    :param get_s3_client_func: A function that returns an S3 client
    :param get_bucket_func: A function that returns an object representing an S3 bucket
    :param delete_keys_func: A function that deletes a list of keys from an S3 bucket
    :param key_list: The list of keys to delete from the S3 bucket
    :param s3_bucket: The name of the bucket from which to delete
    :return: A MultiDeleteResult object detailing the keys that were deleted and any errors encountered
    """

    return delete_keys_func \
    (
        get_bucket_func
        (
            get_s3_client_func(),
            s3_bucket
        ),
        key_list
    )