Moved code to determine if types should appear in the inheritance list and whether enum values should appear in the output into the OOP emulator
Some refactoring
Use "generic argument" context for type arguments in inline code.
Some tests