public function getRule(string $ruleName) : IRule
    {
        if (!$this->hasRule($ruleName)) {
            throw new InvalidArgumentException("No rule extension with name \"$ruleName\" found");
        }

        return $this->extensions[$ruleName];
    }