Я не могу сказать по тону вашего вопроса, это первый раз, когда вы пытаетесь написать компилятор, или вы уже писали компиляторы раньше и ищете советы, специфичные для Haskell. Если вы уже являетесь гуру компилятора, мой небольшой совет не поможет. :)
Грамматики языка программирования обычно представлены в форме BNF , которая может использоваться такими инструментами, как Yacc или Bison, для разбора исходного кода. Я не знаю, считается ли это как способ сделать это на Хаскелле, но это единственный способ, о котором я слышал. Немного покопавшись, вы, вероятно, сможете найти инструмент для генерации кода на Haskell из грамматики BNF; Я нашел этот инструмент , который утверждает, что может сделать это.
Быстрый поиск в Google показал эту грамматику BNF для Haskell , и, вероятно, есть другие, если вы хотите написать компилятор для Haskell (возможно, вы захотите написать компилятор Haskell в Haskell?) Грамматика BNF для C и Java, кажется, популярна.
Наконец, если вы ищете книгу о дизайне компилятора, классический текст будет «Книга Дракона» .