Allow "class a.b" as well as/instead of "namespace a class b" in type definitions. Replace use of ordinary "string" with reference-counted "String". Implement aliases, that can be used to import other namespaces or specific elements thereof as if they were defined in the current namespace, optionally with a different name. They can also be used simply to define an alias within a namespace. Implement typedefs, which are like aliases, but which are treated as distinct types for type-checking purposes. Typedefs should not be allowed on namespaces themselves (for now, at least... Maybe when/if virtual classes are added that can change). Finish semantic routines and generate output (mostly done). Implement the importation of compiled types. Add implicit System.Object inheritance. Allow symbols defined in the current and ancestor namespaces to override those elsewhere in the search path without ambiguity, favoring closer namespaces. Come up with a proper set of namespace search rules. Implement loop detection for constant initialization. C++: Constructors for easy struct initialization C++: Array<> initializers for constant strings Implement autorelease pools. Until then, I'm not going to bother fixing some memory leaks. Partially done -- the interfaces exist, but the implementation doesn't (anything autoreleased will just leak for now). Note that before it is implemented, code that assumes a newly allocated object has refcount 1 needs to be fixed to assume/accept the possibility that it has been autoreleased.