я знал пролог. лет в 15. и кстати хаскел у меня был первым ФЯ, и мне в первое время было некомфортно что в функциях нет бектрекинга и более можного прологовсокго сопоставления с образцом, типа (x,x) - пара с двумя одинаковыми элементами
можно конечно всякими LogicT моделировать (прокаченная версия ChurchList). но это все куцее и не то
можно тайпфамелями, но опять же, это все очень громоздко