When an element is visited, it calls the Visitor operation that
corresponds to its class. The element supplies itself as an argument
to this operation to let the visitor access its state, if necessary.
The following interaction diagram illustrates the collaborations
between an object structure, a visitor, and two elements: