from typing import Callable


def combine_predicates(*predicates: Callable[..., bool]) -> Callable[..., bool]:
    """
    Combine multiple predicates into a single one. The result is true only if all of the predicates are satisfied.
    """

    def check_all(*args, **kwargs) -> bool:
        return all(map(lambda f: f(*args, **kwargs), predicates))

    return check_all