Copyright | (c) Michael Szvetits 2020 |
---|---|
License | BSD3 (see the file LICENSE) |
Maintainer | typedbyte@qualified.name |
Stability | stable |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Lazy interpretations of the Map'
effect.
If you don't require disambiguation of multiple map effects (i.e., you only have one map effect in your monadic context), you usually need the untagged interpretations.
Interpreter Type
The lazy interpreter of the map effect. This type implements the
Map'
type class in a lazy manner.
When interpreting the effect, you usually don't interact with this type directly, but instead use one of its corresponding interpretation functions.
Instances
(Monad m, Ord k2) => Map' (tag :: k1) k2 v (LazyMap k2 v m) Source # | |
MonadBase b m => MonadBase b (LazyMap k v m) Source # | |
Defined in Control.Effect.Map.Lazy | |
MonadBaseControl b m => MonadBaseControl b (LazyMap k v m) Source # | |
MonadTrans (LazyMap k v) Source # | |
Defined in Control.Effect.Map.Lazy | |
MonadTransControl (LazyMap k v) Source # | |
Monad m => Monad (LazyMap k v m) Source # | |
Functor m => Functor (LazyMap k v m) Source # | |
Monad m => Applicative (LazyMap k v m) Source # | |
Defined in Control.Effect.Map.Lazy pure :: a -> LazyMap k v m a # (<*>) :: LazyMap k v m (a -> b) -> LazyMap k v m a -> LazyMap k v m b # liftA2 :: (a -> b -> c) -> LazyMap k v m a -> LazyMap k v m b -> LazyMap k v m c # (*>) :: LazyMap k v m a -> LazyMap k v m b -> LazyMap k v m b # (<*) :: LazyMap k v m a -> LazyMap k v m b -> LazyMap k v m a # | |
MonadIO m => MonadIO (LazyMap k v m) Source # | |
Defined in Control.Effect.Map.Lazy | |
type StT (LazyMap k v) a Source # | |
type StM (LazyMap k v m) a Source # | |
Tagged Interpretations
:: Monad m | |
=> (Map' tag k v `Via` LazyMap k v) m a | The program whose map effect should be handled. |
-> m a | The program with its map effect handled. |
Runs the map effect, initialized with an empty map.