Haskell новичок здесь.
Я написал оценщика для минимального сборочного языка.
Теперь я хочу расширить этот язык, чтобы поддерживать какой-то синтаксический сахар, который затем я буду компилировать, чтобы использовать только примитивные операторы. Идея заключается в том, что я больше не хочу касаться модуля оценки.
В OO-способе делать вещи, я думаю, можно было расширить исходный модуль, чтобы поддерживать синтаксические сахара-операторы, предоставляя здесь правила трансляции.
Кроме того, я могу только подумать о том, чтобы переписать конструкторы типов данных в обоих модулях, чтобы они не назовели имя и не перешли оттуда, как если бы они были совершенно разными, но это означает некоторую избыточность, поскольку я бы должны повторять (только с другими именами) общие операторы. Опять же, я думаю, что ключевое слово здесь expand.
Есть ли функциональный способ достижения этого?
Спасибо, что нашли время, чтобы прочитать этот вопрос.