Currently, when a ConsString is flattened to a java.lang.String, only the top level string is generated and cached (for obvious reasons). However, if a ConsString is repeatedly concatenated with another string and then flattened we may want to generate and cache the java.lang.String representation of that partial ConsString. A typical use case is the following piece of code where `data` may be a constant, long ConsString. String(header + CRLF + data);