box-0.9.3.1: A profunctor effect system.
Safe HaskellSafe-Inferred
LanguageGHC2021

Box.Codensity

Description

Extra Codensity operators.

Synopsis

Documentation

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

close the Codensity 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 a continuation.

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

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

fmap then close a continuation.

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

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

apply and then close a continuation.

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

Orphan instances

(Functor m, 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 #

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 #