comonads-fd-3.0.1: Comonad transformers using functional dependencies

Portabilitynon-portable (fundeps, MPTCs)
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellNone

Control.Comonad.Store

Contents

Description

 

Synopsis

ComonadStore class

class Comonad w => ComonadStore s w | w -> s whereSource

Methods

pos :: w a -> sSource

peek :: s -> w a -> aSource

peeks :: (s -> s) -> w a -> aSource

seek :: s -> w a -> w aSource

seeks :: (s -> s) -> w a -> w aSource

experiment :: Functor f => (s -> f s) -> w a -> f aSource

Instances

(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

type Store s = StoreT s Identity

store :: (s -> a) -> s -> Store s a

runStore :: Store s a -> (s -> a, s)

The StoreT comonad transformer

data StoreT s w a

Constructors

StoreT (w (s -> a)) s 

Instances

(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) 

runStoreT :: StoreT s w a -> (w (s -> a), s)

Re-exported modules