я думал R-алгебра должна быть вида
type RAlgebra f a = f (Fix f, a) -> a
(т.е поскольку кортежей нет в ситаксисе, то так
type RAlgebra f a = f (Tuple (Fix f) a) → a
, наверное)
можно было бы параметризовать, чтобы убрать конкретно
Tuple
, но тогда все равно сигнатура будет выглядеть так (и это вроде бы уже не будет R-алгеброй, но ее можно будет сконкструивать так
type RAlgebra' f a = Mystery Tuple f a
):
type Mystery w f a = f (w (Fix f) a) → a
, не могу понять: я не вижу что из этого в списке R-алгебра, либо ее там нет (?)
читаю вот это сейчас
http://blog.sumtypeofway.com/recursion-schemes-part-iii-folds-in-context/, поэтому такой вопрос вообще возник
(т.е. я понимаю, что могу легко определить сам её если нужно)