Portability | non-portable (fundeps, MPTCs) |
---|---|
Stability | experimental |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Safe Haskell | None |
- class Comonad w => ComonadStore s w | w -> s where
- type Store s = StoreT s Identity
- store :: (s -> a) -> s -> Store s a
- runStore :: Store s a -> (s -> a, s)
- data StoreT s w a = StoreT (w (s -> a)) s
- runStoreT :: StoreT s w a -> (w (s -> a), s)
- module Control.Comonad
- module Control.Comonad.Trans.Class
ComonadStore class
class Comonad w => ComonadStore s w | w -> s whereSource
peeks :: (s -> s) -> w a -> aSource
seeks :: (s -> s) -> w a -> w aSource
experiment :: Functor f => (s -> f s) -> w a -> f aSource
(Comonad (IdentityT w), ComonadStore s w) => ComonadStore s (IdentityT w) | |
(Comonad (TracedT m w), ComonadStore s w, Monoid m) => ComonadStore s (TracedT m w) | |
(Comonad (EnvT e w), ComonadStore s w) => ComonadStore s (EnvT e w) | |
(Comonad (StoreT s w), Comonad w) => ComonadStore s (StoreT s w) |
The Store comonad
The StoreT comonad transformer
data StoreT s w a
StoreT (w (s -> a)) s |
(Comonad (StoreT s w), ComonadTraced m w) => ComonadTraced m (StoreT s w) | |
(Comonad (StoreT s w), Comonad w) => ComonadStore s (StoreT s w) | |
(Comonad (StoreT t w), ComonadEnv e w) => ComonadEnv e (StoreT t w) | |
ComonadHoist (StoreT s) | |
ComonadTrans (StoreT s) | |
Functor w => Functor (StoreT s w) | |
(Typeable s, Typeable1 w) => Typeable1 (StoreT s w) | |
(Functor (StoreT s w), Applicative w, Monoid s) => Applicative (StoreT s w) | |
(Functor (StoreT s w), Comonad w) => Comonad (StoreT s w) | |
(Comonad (StoreT s w), ComonadApply w, Semigroup s) => ComonadApply (StoreT s w) | |
(Functor (StoreT s w), Apply w, Semigroup s) => Apply (StoreT s w) | |
(Functor (StoreT s w), Extend w) => Extend (StoreT s w) | |
(Typeable s, Typeable1 w, Typeable a) => Typeable (StoreT s w a) |
Re-exported modules
module Control.Comonad
module Control.Comonad.Trans.Class