printDocArgs("arg", "a child of the new " + alt.getId(), type, alt);
	private void genConstructors(ADT api) throws GenerationException {		Iterator types = api.typeIterator();		bothPrintFoldOpen("constructors");		while (types.hasNext()) {			Type type = (Type) types.next();			String type_name = buildTypeName(type);			Iterator alts = type.alternativeIterator();			while (alts.hasNext()) {				Alternative alt = (Alternative) alts.next();				String decl = buildConstructorDecl(type, alt);				hprintln(decl + ";");				printDocHead("Constructs a " + alt.getId() + " of type " + type_name, "Like all ATerm types, " + type_name + "s are maximally shared.");				printDocReturn("A pointer to a " + alt.getId() + ", either newly constructed or shared");				printDocArgs("arg", "a child of the new " + alt.getId(), type, alt);				printDocTail();				printFoldOpen(decl.toString());				println(decl + " {");				genDealWithSeparatedListException(type, StringConversions						.makeCapitalizedIdentifier(type.getId()), alt);				genAlternativeConstructorBody(type_name, alt);				println("}");				printFoldClose();			}		}		println();		bothPrintFoldClose();	}