b -> b) -> b -> [a] -> b, то есть результат будет иметь тот же тип, что и второй аргумент, Monad m => b -> m b в данном случае. А дальше рассуждения вроде интуитивно правильные. Не знаю только, имеет ли тут значение лень или нет
второй аргумент как раз f', функция трех аргументов, foldr даст 2, останется на выходе функция одного аргумента, куда z0 закидывают
Обсуждают сегодня