Instead of enforcing that parsers are single instance, leave this up to the caller by optionally accepting a Func<> instead.