class IDL::AST::Module

def copy_from(_template, instantiation_context)

def copy_from(_template, instantiation_context)
  super
  if _template.has_anchor?
    # module anchor is first to be copied/instantiated and
    # should be registered in instantiation_context
    cp = IDL::AST::TemplateParam.concrete_param(instantiation_context, _template.anchor)
    # concrete param must be a IDL::Type::NodeType and it's node a Module (should never fail)
    raise "Invalid concrete anchor found" unless cp.is_a?(IDL::Type::NodeType) && cp.node.is_a?(IDL::AST::Module)
    @anchor = cp.node
    # link our self into module chain
    @anchor.find_last.set_next(self)
  end
  @next = nil # to be sure
  self
end