comonad-transformers-1.5.2.1: Comonad transformers

Portabilityportable
Stabilityprovisional
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Comonad.Trans.Discont.Memo

Contents

Description

Discont is the density comonad of a constant functor, just as Cont is a Codensity monad of a constant functor. (For the definition of Density and Codensity, see the non-Haskell 98 adjunctions package)

Note that while Discont and Store are isomorphic, DiscontT and StoreT are not.

Like the memoizing store comonad, version memoizes the result of applying the continuation to the current context.

Synopsis

The discontinuation comonad

discont :: (s -> a) -> s -> Discont s aSource

The discontinuation comonad transformer

runDiscont :: Discont s a -> (s -> a, s)Source

data DiscontT s w a Source

discontT :: (w s -> a) -> w s -> DiscontT s w aSource

runDiscontT :: DiscontT s w a -> (w s -> a, w s)Source

Combinators

callCV :: DiscontT s w (DiscontT s w (DiscontT s w a -> a) -> b) -> bSource

label :: Comonad w => DiscontT s w a -> sSource