This is related to some other idea I have about the Context object. We should discuss it sometime.
Basically I would like to have ASTNodes which are independent from everything else, and the Context gives them meaning.
This would help modularity in the future.
For example: a production of the form `X ::= "terminal"`
is considered a constant, only if there is another declaration of the form `X ::= Token{...}`

The same for sort: term.getSort(context).

Anyway. Probably I can make more sense face to face.