Control.Comonad.Store.Class

comonad-5.0.9: Comonads

Copyright | (C) 2008-2012 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | experimental
Portability | non-portable (fundeps, MPTCs)
Safe Haskell | Safe
Language | Haskell2010

Control.Comonad.Store.Class

Description

# Documentation

class Comonad w => ComonadStore s (w :: Type -> Type) | w -> s where #

Minimal complete definition

pos, peek

Methods

pos :: w a -> s #

peek :: s -> w a -> a #

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

seek :: s -> w a -> w a #

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

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

#### Instances

Instances details

ComonadStore s w => ComonadStore s (EnvT e w) # |
Instance details Defined in Control.Comonad.Store.Class Methods pos :: EnvT e w a -> s # peek :: s -> EnvT e w a -> a # peeks :: (s -> s) -> EnvT e w a -> a # seek :: s -> EnvT e w a -> EnvT e w a # seeks :: (s -> s) -> EnvT e w a -> EnvT e w a # experiment :: Functor f => (s -> f s) -> EnvT e w a -> f a #
Comonad w => ComonadStore s (StoreT s w) # |
Instance details Defined in Control.Comonad.Store.Class Methods pos :: StoreT s w a -> s # peek :: s -> StoreT s w a -> a # peeks :: (s -> s) -> StoreT s w a -> a # seek :: s -> StoreT s w a -> StoreT s w a # seeks :: (s -> s) -> StoreT s w a -> StoreT s w a # experiment :: Functor f => (s -> f s) -> StoreT s w a -> f a #
(ComonadStore s w, Monoid m) => ComonadStore s (TracedT m w) # |
Instance details Defined in Control.Comonad.Store.Class Methods pos :: TracedT m w a -> s # peek :: s -> TracedT m w a -> a # peeks :: (s -> s) -> TracedT m w a -> a # seek :: s -> TracedT m w a -> TracedT m w a # seeks :: (s -> s) -> TracedT m w a -> TracedT m w a # experiment :: Functor f => (s -> f s) -> TracedT m w a -> f a #
ComonadStore s w => ComonadStore s (IdentityT w) # |
Instance details Defined in Control.Comonad.Store.Class Methods pos :: IdentityT w a -> s # peek :: s -> IdentityT w a -> a # peeks :: (s -> s) -> IdentityT w a -> a # seek :: s -> IdentityT w a -> IdentityT w a # seeks :: (s -> s) -> IdentityT w a -> IdentityT w a # experiment :: Functor f => (s -> f s) -> IdentityT w a -> f a #

lowerPos :: forall t s (w :: Type -> Type) a. (ComonadTrans t, ComonadStore s w) => t w a -> s #

lowerPeek :: forall t s (w :: Type -> Type) a. (ComonadTrans t, ComonadStore s w) => s -> t w a -> a #