Extendendo um tipo de dados em Haskell

Haskell novato aqui.

Eu escrevi um avaliador para uma linguagem mínima de montage

Agora, quero estender essa linguagem para suportar um pouco de açúcar sintático que, depois, compilarei novamente para usar apenas os operadores primitivos. A ideia é que não quero tocar no módulo avaliador novament

Na maneira OO de fazer as coisas, eu acho, alguém poderiaamplia o módulo original para apoiar os operadores de açúcar sintáticos, fornecendo aqui as regras de traduçã

Além disso, só consigo reescrever os construtores de tipos de dados nos dois módulos para que eles não colidam com o nome e procedam a partir daí, como se fossem coisas diferentes, mas isso implica alguma redundância, pois eu precisaria repita (apenas com outros nomes) os operadores em comum. Mais uma vez, acho que a palavra-chave aqui éamplia.

Existe uma maneira funcional de fazer isso?

Obrigado por reservar um tempo para ler esta pergunt

questionAnswers(4)

yourAnswerToTheQuestion