Improve typer and support of typing annotation (fix a bug in abstraction check)