private void writeDeferredCompositeDeclarations(TaskMonitor monitor)
			throws IOException, CancelledException {
		int cnt = deferredCompositeDeclarations.size();
		if (cnt == 0) {
			return;
		}

		LinkedList<Composite> list = new LinkedList<>(deferredCompositeDeclarations);
		if (list.size() > 1) {
			// Establish dependency ordering
			int sortChange = 1;
			while (sortChange != 0) {
				sortChange = 0;
				for (int i = cnt - 1; i > 0; i--) {
					if (resortComposites(list, i)) {
						++sortChange;
					}
				}
			}
		}

		for (Composite composite : list) {
			writeCompositeBody(composite, monitor);
		}
	}
Writes the data type as ANSI-C using the underlying writer.
@param dt the data type to write as ANSI-C
@param monitor the task monitor
@throws IOException if there is an exception writing the output
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/DataTypeWriter.java