C;=s      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk l m n o p q r (c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable  Trustworthy &(+-3=JK(The type for asynchronous input/output. GfilterPush :: (a -> Bool) -> PushPull a b r -> Program (PushPull a b) r      (c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable  Trustworthy &(+-3=JK 2'Request a b' is the type of a request that sends a to receive b.      Trustworthy+HJKM The type  Object f g. represents objects which can handle messages f%, perform actions in the environment gB. It can be thought of as an automaton that converts effects. ,s can be composed just like functions using ; the identity element is 6. Objects are morphisms of the category of functors  An alias for . The identity object .Lift a natural transformation into an object. The unwrapped analog of  unfoldO runObject = id "unfoldO runSequential = sequential unfoldO iterObject = iterable Build a stateful object. stateful t s = t ^>> variable s@ Object-object composition  Reversed '(>>)' Object-function composition !Function-object composition "Parallel composition #Objective fanin $*An object that won't accept any messages. %0Extend an object by another independent object. &0Build a stateful object, sharing out the state. +Let object handle s. ,Let object handle ReifiedProgramT. /$Change the workspace of the object. 03Apply a function to methods coming into an object.  !"#$%&'()*+,-./0 !"#$%&'()*+,-./0 !"#$%&'()*+,-./0 !"#$%&'()*+,-./0  !"#%'( TrustworthyHM1Object with a final result. Object f g "a Mortal f g Void6 Restricted 1% constuctor, which can be applied to transit,  fromFoldable without ambiguousness. 12345678tuv1234567812346578 12345678tuv Trustworthy9-For every adjunction f " g, we can "connect"  Object g m and  Object f m permanently.<Create a source from a w container.A*Attack a rank-1 Mealy machine to a source.B*Attach a rank-1 Mealy machine into a sink. 9:;<=>?@AB 9:;<=>?@AB 9:;<=>?@AB 9:;<=>?@AB9 TrustworthyC4An object which is specialized to be a Mealy machineF 9_Process :: Iso' (Object (Request a b) m) (Process m a b)CDEFGHIJKLMNOPQCDEFCDEFQPONMLKJIHG CDEFGHIJKLMNOPQNone&3HJKMS1Build an object using continuation passing style.TThe flyweight pattern.ULike T, but it uses    internally.\A mutable variable. RSTUVWXYZ[\]^ RSTUVWXYZ[\]^ STUVWXYZ[R\]^ RSTUVWXYZ[\]^(c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None &234=HJKMgInvoke a method. h(.^) for StateT j=We can convert method invocation into an object trivially. invocation i = liftO (i.-) _`abcdefghij _`abcdefghij e`abcd_fghij_`abcdefghijfghi (c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None246=Kklmnklnmkllnmk %(c) Corbin Simpson, Google Inc. 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental non-portable (ST) None&3=Kopqroprqopprqo None_`abcdefghijklop(c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable  Trustworthy &234HJKMO  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFRSTUVWXYZ[\]^x !"##$%&'()*+,-./0123456789:;<=>>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu v w x y z { | }~objective-0.6.3.3Data.Functor.PushPullData.Functor.RequestControl.Object.ObjectControl.Object.MortalControl.Object.StreamControl.Object.ProcessControl.Object.ExtraControl.Monad.Objective.ClassControl.Monad.Objective.IOControl.Monad.Objective.ST Data.HashMapStrictControl.Monad.ObjectiveControl.Object PushPull'PushPullPullPushmapPushpushpullbipushbipull filterPush$fTowerPushPull$fProfunctorPushPullRequest mapRequestrequestacceptacceptM$fTowerRequest$fApplicativeRequest$fProfunctorRequestObject runObject@-echoliftOunfoldOunfoldOMstateful@>>@@<<@@>>^^>>@@**@@||@loner@|>@sharing@!@!! iterObject iterTObject sequential sequentialT iterative iterativeT transObject adaptObjectMortalunMortalmortal runMortalmortal_immortal reincarnation$$$?$!$$! fromFoldablemapLmapRfilterLfilterR$$@@$$Process unProcess_Process$fFractionalProcess $fNumProcess$fChoiceProcess$fStrongProcess$fProfunctorProcess$fArrowChoiceProcess$fArrowProcess$fCategory*Process$fMonoidProcess$fApplicativeProcess$fFunctorProcessVariableoneshot flyweight flyweight'animatetransitannounce announceMaybeannounceMaybeTannounceMortalvariablemoorefoldPPMonadObjective ObjectiveBaseInstInstOfnewinvokeInst'.-.^.&.! invocationInstIOnewIOTFCo:R:InstIOfg$fObjectiveBaseIOInstSTnewSTTFCo:R:InstSTfg$fObjectiveBaseSTminioperational-0.4.8.1Control.Monad.Operational.MiniReifiedProgram $fMonadMortal$fApplicativeMortal$fFunctorMortalbase Data.FoldableFoldable