Нет ничего похожего на карму для X3.
За пределами библиотеки Proto нет средств для обхода дерева выражений.
Тем не менее. Вы столкнетесь с предсказуемыми проблемами, когда сопоставление ввода-вывода не является биекцией. Вам всегда нужно будет выбрать предпочтительное выходное представление для таких данных, а это значит, что ваши данные могут не быть в обе стороны, у вас может быть преобразование с потерями. Вы должны принять это во внимание.
Я бы на самом деле не учел это. Вместо того, чтобы тесно связывать мою реализацию с деталями реализации сложной библиотеки…, я бы основывал свой алгоритм на AST или структурах данных, которыми вы фактически управляете.
¹ как X3, который также является экспериментальным, поэтому все может измениться без уведомления