изоморфизмы. Даже написал вчера немного об этом.
Для реализации понадобились следующие нестандартные классы:
class (Monad m, Functor f) => FunctorM m f where
fmapM :: forall b t. (b -> m t) -> m (f b) -> m (f t)
class (Monad m, Profunctor p) => ProfunctorM m p where
fish :: forall a b c. (a -> m b) -> p b (m c) -> p a (m c)
может быть какие-то из них эквивалентны чему-то известному? Я попытался поhoogleить, но безрезультатно.
Почему нужно заворачивать функтор в монаду, если монада и так функтор?
Если кратко, то чтобы эффекты в линзы привнести. Функтор там под forall, поэтому он не монада вообще говоря. А более подробно можно почитать по ссылке
нельзя, оно закрыто
исправил, спасибо
Обсуждают сегодня