ast package to assign data types once the
AST is loaded and has model information associated with it.
The TypeChecker class performs as a recursive visitor that assigns
types from the bottom up. It makes use of an ITypeMapping to map
model elements to primitive types where necessary.