Control.Monatron.Zipper
Contents
- newtype (t1 :> t2) m a = L {
- runL :: t1 (t2 m) a
- runZipper :: (t1 :> t2) m a -> t1 (t2 m) a
- zipper :: t1 (t2 m) a -> (t1 :> t2) m a
- leftL :: (t1 :> t2) m a -> t1 (t2 m) a
- rightL :: t1 (t2 m) a -> (t1 :> t2) m a
- data m :><: n = View {}
- i :: m :><: m
- o :: (Monad m, MonadT t1, MonadT t2) => t1 (t2 m) :><: (t1 :> t2) m
- vlift :: (FMonadT t, Functor m, Functor n) => (m :><: n) -> t m :><: t n
- hcomp :: (n :><: o) -> (m :><: n) -> m :><: o
- vcomp :: (Functor m1, Functor m2, FMonadT t) => (t m2 :><: m3) -> (m1 :><: m2) -> t m1 :><: m3
- r :: Monad m => StateT s m :><: ReaderT s m
- stateIso :: Monad m => (s1 -> s2) -> (s2 -> s1) -> StateT s1 m :><: StateT s2 m
- getv :: StateM s n => (m :><: n) -> m s
- putv :: StateM s n => (m :><: n) -> s -> m ()
Documentation
Instances
(ContM r (t2 m), FMonadT t1, FMonadT t2, Functor (t2 m), Monad m) => ContM r (:> t1 t2 m) | |
(ExcM z (t2 m), FMonadT t1, FMonadT t2, Functor (t2 m), Monad m) => ExcM z (:> t1 t2 m) | |
(ReaderM z (t2 m), FMonadT t1, FMonadT t2, Functor (t2 m), Monad m) => ReaderM z (:> t1 t2 m) | |
(WriterM z (t2 m), MonadT t1, Monad m, MonadT t2) => WriterM z (:> t1 t2 m) | |
(Monad m, MonadT t1, MonadT t2, StateM z (t2 m)) => StateM z (:> t1 t2 m) | |
(FMonadT t1, FMonadT t2) => FMonadT (:> t1 t2) | |
(MonadT t1, MonadT t2) => MonadT (:> t1 t2) | |
(ListM (t2 m), FMonadT t1, FMonadT t2, Functor (t2 m), Monad m) => ListM (:> t1 t2 m) |