именно потому что хаскель не си если какой-то очередной си имплементить - то, разумеется, можно оптимизатором ллвм обойтись про это и речь, что когда имплементируете язык Х на базе имплементации языка У то сразу видно насколько они похожи
Я для обработки деревьев переписывал часть функций из хаскеллевских пакетов, получалось не оптимально (хвостовой рекурсии-то и ленивости нет), но работоспособно для proof-of-concept
Если бы вам поставили задачу реализовать хаскель с нуля, добавляя по 1 фиче в язык, сохраняя хотя бы некое подобие работоспособности на каждом шаге, какие фичи вы бы добавили на шагах 1, 2, 3?