Use Java Compiler API to accurately track dependencies and postpone elements for later rounds when needed
Generate toString method