Tel Asc
Но мне почему-то такая реализация контрАппликатива кажется более естественной:
class ContrApplicative f where
capp :: f (b -> a) -> (f a -> f b)
Но это уже совсем дичь какая-то...
Т.к. я для Op реализовать такой аппликатив пытался,но там вообще ничего не выходит...
делаем все просто, перепишем апппликатив в более категорный и понятный вид
class Applicative f where
unit :: f ()
mult :: (f a, f b) -> f (a, b)
теперь собственно уже легко стрелки первернуть
class CoApplicative f where
counit :: f () -> () -- это нам бесполезно
comult :: f (a, b) -> (f a, f b)