altClassName + "\", " + type.getAltArity(alt) + ", false);");
afunName + "\", " + type.getAltArity(alt) + ", false);");
	 private void genFactoryInitialization(ADT api)	 {	   Iterator types = api.typeIterator();	   while (types.hasNext()) {		 Type type = (Type)types.next();      		 println("    " + TypeGenerator.className(type) + ".initialize(this);");      		 Iterator alts = type.alternativeIterator();		 while (alts.hasNext()) {		   Alternative alt = (Alternative)alts.next();		   String altClassName = AlternativeGenerator.className(type,alt);		   String protoVar = "proto" + altClassName;		   String funVar = "fun" + altClassName;		   println();        		   println("    " + altClassName + ".initializePattern();");		   println("    " + funVar + " = makeAFun(\"" + 				   altClassName + "\", " + type.getAltArity(alt) + ", false);");		   println("    " + protoVar + " = new " + altClassName + "();");      		 }		 println();	   }    	   Iterator bottoms = api.bottomTypeIterator();    	   while (bottoms.hasNext()) {		 String type = (String) bottoms.next();      		 if (!converter.isReserved(type)) {		   println("    " + StringConversions.makeCapitalizedIdentifier(type) + ".initialize(this);");		 }	   }	 }