A strange example of the Visitor pattern