úÎ<¼0      !"#$%&'()*+,-./ 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. 00portable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered 12345678   12345678portable provisionalEdward Kmett <ekmett@gmail.com> Safe-Inferedportable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered 9    9portable 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) ::portable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered;<=>?@ABCDE  ;<=>?@ABCDEportable 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  !"#$%FGHIJKLMN  !"#$% !"#$%  !"#$%FGHIJKLMNportable provisionalEdward Kmett <ekmett@gmail.com> Safe-Infered&'()*+,-./OPQRSTUVW &'()*+,-./ )*+&'(,-./&'()*+,-./OPQRSTUVWX     !""#$%&'()*+,--./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^comonad-transformers-2.1.2Control.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 runStoreT experimentposseekseekspeekpeeksTracedT 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