Typer.getType is tail recursive (thanks @Kha)