public static function ands(callable ...$predicates) : callable
    {
        return function ($element) use ($predicates) {
            foreach ($predicates as $predicate) {
                if (!self::call($predicate, $element)) {
                    return false;
                }
            }
            return true;
        };
    }
public static function ands(callable ...$predicates) : callable
    {
        return function ($element) use ($predicates) {
            foreach ($predicates as $predicate) {
                if (!self::call($predicate, $element)) {
                    return false;
                }
            }
            return true;
        };
    }
Returns true if and only if all given predicates return true.

@param callable[] $predicates
@return callable