> That would cause trouble for the D port.

Could you add a simple rule for this?
`template <class T> void visit(T* unknownStatement);` => `void visit(T)(T unknown)`.