(<*>).(<*>)
какая-то странная система типов:
» [](I input) -> ParsingResult<JsonString, I> {
» return visit([input](auto&& value) {
» if constexpr (is_same_v<decltype(value), JsonBool>)
» return make_parsing_success<JsonBool, I>(
» value,
» input
» );
» ...
template <typename A, typename I>
struct ParsingSuccess: pair<A, I> {};
template <typename A, typename I>
using ParsingResult = variant<ParsingError<I>, ParsingSuccess<A, I>>;