Copyright | (c) 2020-2021 Emily Pillmore |
---|---|
License | BSD-3-Clause |
Maintainer | Emily Pillmore <emilypi@cohomolo.gy> |
Stability | Experimental |
Portability | Non-portable |
Safe Haskell | Safe |
Language | Haskell2010 |
This module contains utilities for the monad transformer for the pointed product.
Monad Transformer
A monad transformer for the pointed product, parameterized by:
a
- the value on the leftb
- the value on the rightm
- The monad over a pointed product (see:Can
).
This monad transformer is similar to TheseT
,
except with the possibility of an empty unital value.
Instances
(Semigroup t, MonadRWS r w s m) => MonadRWS r w s (CanT t m) Source # | |
Defined in Control.Monad.Trans.Can | |
(Semigroup a, MonadWriter w m) => MonadWriter w (CanT a m) Source # | |
(MonadState s m, Semigroup t) => MonadState s (CanT t m) Source # | |
(Semigroup a, MonadReader r m) => MonadReader r (CanT a m) Source # | |
(MonadError e m, Semigroup e) => MonadError e (CanT e m) Source # | |
Defined in Control.Monad.Trans.Can throwError :: e -> CanT e m a # catchError :: CanT e m a -> (e -> CanT e m a) -> CanT e m a # | |
MonadTrans (CanT a) Source # | |
Defined in Control.Monad.Trans.Can | |
(Semigroup a, Monad m) => Monad (CanT a m) Source # | |
Functor f => Functor (CanT a f) Source # | |
(Semigroup a, Applicative f) => Applicative (CanT a f) Source # | |