ABS language Grammar, Typechecking that can be pluggable to any backends