exference-1.6.0.0: environment/Comonad.hs
module Control.Comonad where
class Data.Functor.Functor w => Comonad w where
-- loses information and causes search space enlarging.
-- extract :: w a -> a
duplicate :: w a -> w (w a)
extend :: (w a -> b) -> w a -> w b
liftW :: Comonad w => (a -> b) -> w a -> w b
class Comonad w => ComonadApply w where
(<@>) :: w (a -> b) -> w a -> w b
(@>) :: w a -> w b -> w b
(<@) :: w a -> w b -> w a
liftW2 :: ComonadApply w => (a -> b -> c) -> w a -> w b -> w c
liftW3 :: ComonadApply w => (a -> b -> c -> d) -> w a -> w b -> w c -> w d