вопрос. Может какая добра душа пояснит:
Обычный функтор может оборачивать функцию если реализует функцию pure :: a -> f a (я проверял на кастомном функторе, внезапно это жействительно так 😊). Но почему я не пойму. Я бы понял если бы функция pure типизировалась как pure::(a->b) -> f(a->b). Но она имеет другую типизацию. В чем тут тонкость?
возьмите pure :: a -> f a и подставьте a = b -> c
нет, обычный функтор в общем случае не может, только аппликативный
Обсуждают сегодня