box-0.9.3.2: A profunctor effect system?
Safe HaskellNone
LanguageGHC2021

Box.Codensity

Description

Extra Codensity operators.

Synopsis

Documentation

close :: forall {k} m (r :: k). Codensity m (m r) -> m r Source #

close the Codensity continuation.

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

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

fmap then close a continuation.

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

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

fmap then close a continuation.

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

(<*|>) :: forall {k} m a (r :: k). 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 #