String altClassName = AlternativeGenerator.getAltClassName(type,alt);
String altClassName = AlternativeGenerator.className(type,alt);
	   private void genFactoryMakeMethods(ADT api) {	   Iterator types = api.typeIterator();	   while (types.hasNext()) {		 Type type = (Type) types.next();		 Iterator alts = type.alternativeIterator();		 while (alts.hasNext()) {		   Alternative alt = (Alternative) alts.next();		   String altClassName = AlternativeGenerator.getAltClassName(type,alt);		   String protoVar = "proto" + altClassName;		   String funVar = "fun" + altClassName;        		   println("  protected " + altClassName + " make" + altClassName + 				   "(aterm.AFun fun, aterm.ATerm[] args, aterm.ATermList annos) {");		   println("    synchronized (" + protoVar + ") {");		   println("      " + protoVar + ".initHashCode(annos,fun,args);");		   println("      return (" + altClassName + ") build(" + protoVar + ");");		   println("    }");		   println("  }");		   println();		   print  ("  public " + altClassName + " make" + altClassName + "(");		   printFormalTypedAltArgumentList(type, alt);		   println(") {");		   print  ("    aterm.ATerm[] args = new aterm.ATerm[] {");		   printActualTypedArgumentList(type,alt);		   println("};");		   println("    return make" + altClassName + "( " + funVar + ", args, empty);"); 		   println("  }");		   println();		 }	   }	   }