úΞ/      !"#$%&'()*+,-. Safe-Infered~We often need to distinguish between various forms of Functor-like composition in Haskell in order to please the type system. 9 This lets us work with these representations uniformly. //portable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered 01234567   01234567portable provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferedportable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered 8    8portable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered;Ideally we would offer a way to lift comonad homomorphisms  but this isn'4t Haskell 98, so we settle for the most common case  here. 8 liftTrans :: (forall a. w a -> v a) -> t w a -> t v a * cohoist = liftTrans (Identity . extract) 99portable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered:;<=>?@ABCD  :;<=>?@ABCDportable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered Read the current position !Seek to an absolute location  seek s = peek s . duplicate "Seek to a relative location  seeks f = peeks f . duplicate #-Peek at a value at a given absolute location # peek x . extend (peek y) = peek y $-Peek at a value at a given relative location  !"#$EFGHIJKLM  !"#$  !"#$ !"#$EFGHIJKLMportable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered%&'()*+,-.NOPQRSTUV %&'()*+,-. ()*%&'+,-.%&'()*+,-.NOPQRSTUVW     !""#$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]comonad-transformers-2.1.1Control.Comonad.Trans.IdentityData.Functor.CompositionData.Functor.CoproductControl.Comonad.Trans.ClassControl.Comonad.Hoist.ClassControl.Comonad.Trans.EnvControl.Comonad.Trans.StoreControl.Comonad.Trans.Tracedtransformers-0.3.0.0Control.Monad.Trans.Identity runIdentityT IdentityT Composition decomposecompose Coproduct getCoproductleftright coproduct ComonadTranslower ComonadHoistcohoistEnvTEnvenvrunEnvrunEnvT lowerEnvTaskaskslocalStoreTStorestorerunStore runStoreTposseekseekspeekpeeksTracedT runTracedTTracedtraced runTracedtracelistenlistenscensor$fCompositionCompose$fContravariantCoproduct$fComonadCoproduct$fExtendCoproduct$fTraversable1Coproduct$fTraversableCoproduct$fFoldable1Coproduct$fFoldableCoproduct$fFunctorCoproduct$fComonadTransIdentityT$fComonadHoistIdentityT$fTraversableEnvT$fFoldableEnvT $fApplyEnvT$fComonadHoistEnvT$fComonadTransEnvT $fComonadEnvT $fExtendEnvT $fFunctorEnvT $fDataEnvT$fTypeableEnvT$fTypeable1EnvT$fComonadHoistStoreT$fComonadTransStoreT$fComonadStoreT$fExtendStoreT$fApplicativeStoreT $fApplyStoreT$fFunctorStoreT$fTypeableStoreT$fTypeable1StoreT$fTypeable1TracedT$fDistributiveTracedT$fComonadHoistTracedT$fComonadTransTracedT$fComonadTracedT$fExtendTracedT$fApplicativeTracedT$fApplyTracedT$fFunctorTracedT