Currently TermWriter will only print terms it knows about. If you extend AtomicTerm yourself to provide something more exotic, it will never be printed.
I suggest that AtomicTerm gets an empty method
public void displayTerm(WriteOptions o, TermWriter writer)
which can be used by TermWriter to print terms it doesn't implicitly know about