Give rules::Visitor a virtual destructor