protected function andEvaluator(array $conditions, callable $leafEvaluator)
    {
        $sawNullResult = false;
        foreach ($conditions as $condition) {
            $result = $this->evaluate($condition, $leafEvaluator);
            
            if ($result === false) {
                return false;
            }

            if ($result === null) {
                $sawNullResult = true;
            }
        }

        return $sawNullResult ? null : true;
    }