I think we can change it to using a singleton pattern inside of the TypeParser class. I.e. call a static method on TypeParser. It does not really hold any state. If we feel we need to parameterize elsewhere to pick different implementations of type parsing we can do so by giving it another class rather than instance of TypeParser. (But this is all optimization, so something we should measure and attack separately).