public function register()
    {
        $this->app->singleton(Grammar::class);

        $this->app->singleton(Lexer::class);

        $this->app->singleton(Parser::class);

        $this->app->singleton(IntToRomanFilter::class);

        $this->app->singleton(RomanToIntFilter::class);
        $this->app->resolving(RomanToIntFilter::class, function ($element, $app) {
            $element->setLexer($app->make(Lexer::class));
            $element->setParser($app->make(Parser::class));
            return $element;
        });

        $this->app->alias(IntToRomanFilter::class, 'intToRoman');
        $this->app->alias(RomanToIntFilter::class, 'romanToInt');
    }