public void Emit(IlBuilder builder)
        {
            builder.Start();

            foreach (InterType t in Types)
            {
                t.Bind(this);
            }

            foreach (InterType t in Types)
            {
                t.BindSubMembers(this);
            }

            foreach (InterType t in Types)
            {
                t.BindSubSubMembers(this);
            }

            EmitCLRHeader(builder);

            foreach (InterType t in Types)
            {
                t.Emit(builder);
            }

            builder.End();
        }
        private void EmitCLRHeader(IlBuilder builder)
        {
            builder.EmitLine($".assembly {assemblyName} {{}}");

            builder.EmitLine();

            foreach (var reference in ReferenceTracker.UsedReferences)
            {
                reference.Emit(builder);
            }

            builder.EmitLine(".module TestModule");

            builder.EmitLine();
        }