úÎ/<'ńs      !"#$%&'()*+,-. / 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 [ \ ] ^ _`abcdefghijklmnopqrportable provisionalEdward Kmett <ekmett@gmail.com>portable provisionalEdward Kmett <ekmett@gmail.com>portable provisionalEdward Kmett <ekmett@gmail.com>     portable provisionalEdward Kmett <ekmett@gmail.com> s     portable provisionalEdward Kmett <ekmett@gmail.com> portable provisionalEdward Kmett <ekmett@gmail.com> tportable provisionalEdward Kmett <ekmett@gmail.com> uv !" !" "! !"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> %&'wxy()*+,- %&'()*+,- '()%&*+,- %&&'()*+,-portable provisionalEdward Kmett <ekmett@gmail.com> %&'()*+,- portable provisionalEdward Kmett <ekmett@gmail.com> ./0z{|123456 ./0123456 012./3456 .//0123456 portable provisionalEdward Kmett <ekmett@gmail.com> 789}:;<=>?@ 789:;<=>?@ 9:;78<=>?@ 7889:;<=>?@portable provisionalEdward Kmett <ekmett@gmail.com> 789:;<=>?@ portable provisionalEdward Kmett <ekmett@gmail.com> ABC~DEFGHIJ ABCDEFGHIJ CDEABFGHIJ ABBCDEFGHIJ portable provisionalEdward Kmett <ekmett@gmail.com> KL€MNOPQRST KLMNOPQRST LMNKPOQRST KLMNOPQRST portable provisionalEdward Kmett <ekmett@gmail.com> UVWXYZ[\]^ UVWXYZ[\]^ XYZUVW[\]^ UVWVWXYZ[\]^portable provisionalEdward Kmett <ekmett@gmail.com> _‚`abƒcdefg„ _`abcdefg `ab_cdefg _`abcdefgportable provisionalEdward Kmett <ekmett@gmail.com>hEThe 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 ijklmIsomorphic to the definition: ' data Stream f a = a :< f (Stream f a) n cons onto an f-branching stream o"uncons from an f-branching stream punfold a stream from a seed. …†qr‡ˆ‰Š‹ŒŽ hijklmnopqr mnophijqrkl hijijkllmnopqr !"#$ !"$# %!"#$&'(()*+,-./ ( ( ) * + , - . / 0 0 1 2 3 4 5 6 7 8 0 0 1 2 3 4 5 6 7 8 0 1 2 3 4 9 5 6 7 8 : : ; < = > ? @ A B:<=>C?@ABDDEFGHIJKLMNNNOPQ O P Q R R 0 R S:;STUVWXYZ[\]^comonad-transformers-1.2.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 ComonadHoistcohoistEnvTEnvenvrunEnvrunEnvTaskaskslocalStoreTStorestorerunStore runStoreTgetputmodify experimentstoreTTracedT runTracedTTracedtraced runTracedtracelistenlistenscensortracedTStreamT runStreamTNode:<Streamstream runStreamunfoldstailsunfoldsW discontTTyCon envTTyCon envTConstr envTDataType storeTTyCon tracedTTyConfstNsndNtypeFtypeW nodeTyCon streamTTyCon streamTConstrstreamTDataType nodeConstr nodeDataType