void DefineTypes()
{
if (CompileUnit.Modules.Count == 0)
return;
var types = CollectTypes();
foreach (var type in types)
DefineType(type);
foreach (var type in types)
{
DefineGenericParameters(type);
DefineTypeMembers(type);
}
foreach (var module in CompileUnit.Modules)
OnModule(module);
EmitAttributes();
CreateTypes(types);
}