// Less verbose abstraction on top of “ParserInput” template <template<typename>typename F> using ParserInputType = decltype(ParserInput<F>::input_type);
(<*>).(<*>) определяя оверлоады (не уверен что термин правильный) from_json для разных типов я как бы создаю инстансы воображаемого тайп-класса FromJson