Понимание путаницы

Я думал о том, есть ли какой-нибудь метод, который может быть добавлен к Traversable чтобы сделать его дешевле в присутствии дорогих функторов. Вдохновение было Control.Lens.Traversal.confusing, который использует специальный Applicative сделать что-то подобное.

confusing :: Applicative f => LensLike (Curried (Yoneda f) (Yoneda f)) s t a b -> LensLike f s t a b

К несчастью, confusing действительно оправдывает свое имя - я не понимаю, что он на самом деле делает. В частности, у меня нет интуиции о Curried,

Более того, confusing имеет CPS-вкус, что говорит о том, что он, вероятно, слишком строг для моей цели. Yoneda можно обменять на Coyoneda чтобы увеличить лень, но я понятия не имею, что делать с Curried,

0 ответов

Другие вопросы по тегам