Used to extends context to generate code for complex/challenging fields that need
context info
Implemented as separate interface mainly because it is needed by very few context classes
(This deals with the fact that the CodeWriter is not the actual visitor, but
delegates the visiting to the ContextTree and works on the dataset, handles returned from the
ContextTree)