public virtual T GenerateType(Element e, Module module, ITypeRegistry registry) { var t = new T { Module = module, Name = e.Name, Description = e.Documentation }; //register type registry.Register(e, t); return(t); }