Monatron-0.3.1: Monad transformer library with uniform liftings

Control.Monatron.Zipper

Contents

Synopsis

Documentation

newtype (t1 :> t2) m a Source

Constructors

L 

Fields

runL :: t1 (t2 m) a
 

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) 

runZipper :: (t1 :> t2) m a -> t1 (t2 m) aSource

zipper :: t1 (t2 m) a -> (t1 :> t2) m aSource

Relative Navigation

leftL :: (t1 :> t2) m a -> t1 (t2 m) aSource

shift focus to left

rightL :: t1 (t2 m) a -> (t1 :> t2) m aSource

shift focus to right

data m :><: n Source

Constructors

View 

Fields

to :: forall a. m a -> n a
 
from :: forall a. n a -> m a
 

i :: m :><: mSource

o :: (Monad m, MonadT t1, MonadT t2) => t1 (t2 m) :><: (t1 :> t2) mSource

vlift :: (FMonadT t, Functor m, Functor n) => (m :><: n) -> t m :><: t nSource

hcomp :: (n :><: o) -> (m :><: n) -> m :><: oSource

vcomp :: (Functor m1, Functor m2, FMonadT t) => (t m2 :><: m3) -> (m1 :><: m2) -> t m1 :><: m3Source

r :: Monad m => StateT s m :><: ReaderT s mSource

stateIso :: Monad m => (s1 -> s2) -> (s2 -> s1) -> StateT s1 m :><: StateT s2 mSource

getv :: StateM s n => (m :><: n) -> m sSource

putv :: StateM s n => (m :><: n) -> s -> m ()Source