Я пытаюсь понять, как выразить Y-Combitor в этом, наконец, Tagless EDSL:
class Symantics exp where
lam :: (exp a -> exp b) -> exp (exp a -> exp b)
app :: exp (exp a -> exp b) -> exp a -> exp b
fix :: ...
fix f = .....
Я не уверен, но я думаю, что реализация Y-Combinator по умолчанию должна быть возможна с использованием "lam" и "app".
Кто-нибудь знает как? Мои первые попытки потерпели неудачу из-за «не может создать бесконечный тип».
Ура,
Гюнтер