The Visitor pattern needs to be implemented for BasicAtoms so that BasicAtoms can be visited, possibly creating a new BasicAtom based on the visitor.