box-0.8.1: boxes
Safe HaskellSafe-Inferred
LanguageHaskell2010

Box.Codensity

Description

Extra Codensity operators.

Synopsis

Documentation

close :: Codensity m (m r) -> m r Source #

close a continuation

>>> close $ glue showStdout <$> qList [1..3]
1
2
3

process :: forall a m r. (a -> m r) -> Codensity m a -> m r Source #

fmap then close over a Codensity

>>> process (glue showStdout) (qList [1..3])
1
2
3

(<$|>) :: forall a m r. (a -> m r) -> Codensity m a -> m r infixr 3 Source #

fmap then close over a Codensity

>>> glue showStdout <$|> qList [1..3]
1
2
3

(<*|>) :: Codensity m (a -> m r) -> Codensity m a -> m r infixr 3 Source #

apply to a continuation and close.

>>> glue <$> (pure showStdout) <*|> qList [1..3]
1
2
3

Orphan instances

Semigroup a => Semigroup (Codensity m a) Source # 
Instance details

Methods

(<>) :: Codensity m a -> Codensity m a -> Codensity m a #

sconcat :: NonEmpty (Codensity m a) -> Codensity m a #

stimes :: Integral b => b -> Codensity m a -> Codensity m a #

(Functor m, Semigroup a, Monoid a) => Monoid (Codensity m a) Source # 
Instance details

Methods

mempty :: Codensity m a #

mappend :: Codensity m a -> Codensity m a -> Codensity m a #

mconcat :: [Codensity m a] -> Codensity m a #