<5ox      !"#$%&'()*+,-./ 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b cdefghijklmnopqrstuvwportable provisionalEdward Kmett <ekmett@gmail.com>portable provisionalEdward Kmett <ekmett@gmail.com>portable provisionalEdward Kmett <ekmett@gmail.com>     portable provisionalEdward Kmett <ekmett@gmail.com> x     portable provisionalEdward Kmett <ekmett@gmail.com> portable provisionalEdward Kmett <ekmett@gmail.com> yportable provisionalEdward Kmett <ekmett@gmail.com> z{ !" !" "! !"portable provisionalEdward Kmett <ekmett@gmail.com>#$;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> %&'|}~()*+,-. %&'()*+,-. '()%&*.+,- %&&'()*+,-.portable provisionalEdward Kmett <ekmett@gmail.com> %&'()*+,-. portable provisionalEdward Kmett <ekmett@gmail.com> /01234567 /01234567 123/04567 /001234567 portable provisionalEdward Kmett <ekmett@gmail.com> 89:;<=>Read the current position ?Seek to an absolute location  seek s = peek s . duplicate @Seek to a relative location  seeks f = peeks f . duplicate A-Peek at a value at a given absolute location # peek x . extend (peek y) = peek y B-Peek at a value at a given relative location 89:;<=>?@AB :;<89=>?@AB 899:;<=>?@ABportable provisionalEdward Kmett <ekmett@gmail.com> 89:;<=>?@AB portable provisionalEdward Kmett <ekmett@gmail.com> CDEFGHIRead the current position JSeek to an absolute location  seek s = peek s . duplicate KSeek to a relative location  seeks f = peeks f . duplicate L-Peek at a value at a given absolute location # peek x . extend (peek y) = peek y M-Peek at a value at a given relative location CDEFGHIJKLM EFGCDHIJKLM CDDEFGHIJKLM portable provisionalEdward Kmett <ekmett@gmail.com> NOPQRSTRead the current position USeek to an absolute location  seek s = peek s . duplicate VSeek to a relative location  seeks f = peeks f . duplicate W-Peek at a value at a given absolute location # peek x . extend (peek y) = peek y X-Peek at a value at a given relative location NOPQRSTUVWX OPQNSRTUVWX NOPQRSTUVWX portable provisionalEdward Kmett <ekmett@gmail.com> YZ[\]^_`ab YZ[\]^_`ab \]^YZ[_`ab YZ[Z[\]^_`abportable provisionalEdward Kmett <ekmett@gmail.com> cdefghijkl cdefghijkl defchgijkl cdefghijklportable provisionalEdward Kmett <ekmett@gmail.com>mEThe f-branching stream comonad transformer is a comonadic version of  the "ListT done Right"> monad transformer. You can extract the underlying comonadic  value by using   or runStream nopqrIsomorphic to the definition: ' data Stream f a = a :< f (Stream f a) s cons onto an f-branching stream t"uncons from an f-branching stream uunfold a stream from a seed. vw mnopqrstuvw rstumnovwpq mnonopqqrstuvw !"#$ !"$# %!"#$&'(()*+,-./0 ( ( ) * + , - . / 1 1 2 3 4 5 6 7 8 9 : 1 1 2 3 4 5 6 7 8 9 : 1 2 3 4 5 ; 6 7 8 9 : < < = > ? @ A B C D<>?@=EABCDFFGHIJKLMNOPPPQRS Q R S T T 1 T U<UVWXYZ[\]^_`comonad-transformers-1.5.0Control.Comonad.Trans.IdentityData.Functor.CoproductControl.Comonad.Trans.Class"Control.Comonad.Trans.Discont.Lazy$Control.Comonad.Trans.Discont.Strict"Control.Comonad.Trans.Discont.MemoControl.Comonad.Hoist.ClassControl.Comonad.Trans.Env.Lazy Control.Comonad.Trans.Env.Strict Control.Comonad.Trans.Store.Lazy"Control.Comonad.Trans.Store.Strict Control.Comonad.Trans.Store.MemoControl.Comonad.Trans.Traced!Control.Comonad.Trans.Traced.MemoControl.Comonad.Trans.StreamControl.Comonad.Trans.DiscontControl.Comonad.Trans.EnvControl.Comonad.Trans.Storetransformers-0.2.2.0Control.Monad.Trans.Identity runIdentityT IdentityT Coproduct getCoproductleftright coproduct ComonadTranslowerDiscontTDiscontdiscont runDiscont runDiscontTlabelcallCVdiscontT ComonadHoistcohoistEnvTEnvenvrunEnvrunEnvTaskaskslocal lowerEnvTStoreTStorestorerunStore runStoreTposseekseekspeekpeeksstoreTTracedT runTracedTTracedtraced runTracedtracelistenlistenscensortracedTStreamT runStreamTNode:<Streamstream runStreamunfoldstailsunfoldsW discontTTyCon envTTyCon envTConstr envTDataType storeTTyCon tracedTTyConfstNsndNtypeFtypeW nodeTyCon streamTTyCon streamTConstrstreamTDataType nodeConstr nodeDataType