Могут быть библиотеки, которые помогут с битами проверки типов, особенно если вам действительно нужна проверка типов, а не вывод типов.Например, в Haskell были библиотеки, встраивающие логическое программирование - на 10 000 футов кажется, что написать проверку типов с использованием логического программирования гораздо проще, чем функциональное программирование (например, Chameleon, упомянутый shapr выше, основанязык CHR, встроенный в Haskell).
Тем не менее, программирование встроенной логики в Haskell - это большой шаг, возможно, с небольшой документацией, если вы никогда раньше не писали средство проверки типов.Точно так же грамматики атрибутов (т. Е. UUAG) - это приятный формализм, предоставляющий довольно много механизма, который вам нужно было бы написать самому, но они могут поставить вас на место с несколькими указателями, если вы никогда не использовали его ранее.* Если вы раньше не писали проверку типов, возможно, лучше не беспокоиться о библиотеках и проработать процесс с нуля.Бумага Марка П. Джонса «Вводим Хаскель в Хаскеле», вероятно, является хорошей отправной точкой, как и любая другая.