Stateful TypeVisitor. Now that it is a struct, making it stateful and instaciating multiple of them is cheap.