Type resolver


During parsing types are discovered, these should be registered in a type resolver.
Also during parsing, references to types are discovered, these references should
use the same type resolver to resolve the reference. If a reference is not resolved,
the problem should be registered. During type discovery, one should try to resolve
the registered non-resolved references. This could prove to be very efficient!
In addition, resolution of types are local to a single file. The using statements
plays an important role in the ability to resolve references. Fully qualified names
will ofcourse resolve without using statements.