public function and_($conditions, $types = [])
    {
        if ($this->isCallable($conditions)) {
            return $conditions(new static([], $this->getTypeMap()->setTypes($types)));
        }

        return new static($conditions, $this->getTypeMap()->setTypes($types));
    }