Очевидно, что если вы добавите какое-либо действие синтаксического анализа и вернете результат в этом действии, результат всегда будет инкапсулирован в список, углубляющий дерево вывода.
Полагаю, это для возврата нескольких значений, но это значительно усложняет случайное использование библиотеки, потому что вам придется помнить, какие части дерева вы заменили, и вызывать result.normalstruct.replaced[0]
(или даже хуже result.normalstruct['replaced'][0]
)
Это немного странно и усложняет рефакторинг, поэтому я бы хотел избежать этого. Любые советы?