public TemplateDefinition(string name, HashList formalArgs, bool optional)
 {
     this.name = name;
     this.formalArgs = formalArgs;
     this.optional = optional;
 }
 public void DefineTemplate(string name, HashList formalArgs, bool optional)
 {
     TemplateDefinition tdef = new TemplateDefinition(name, formalArgs, optional);
     templates.Add(tdef.name, tdef);
 }