class IDL::Delegator

def instantiate_template_module(name, parameters)

def instantiate_template_module(name, parameters)
  tmp = @template_module_name
  @template_module_name = nil # reset
  template_type = parse_scopedname(*tmp)
  unless template_type.node.is_a?(IDL::AST::TemplateModule)
    raise "invalid module template specification: #{template_type.node.typename} #{template_type.node.scoped_lm_name}"
  end
  params = { template: template_type.node, template_params: parameters }
  mod_inst = @cur.define(IDL::AST::Module, name, params)
  mod_inst.annotations.concat(@annotation_stack)
  @annotation_stack = IDL::AST::Annotations.new
  set_last(mod_inst.template.instantiate(mod_inst))
  @cur
end