úÎB;Út      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl m n o p q r s (c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable  Trustworthy &(+-3=HJKM(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 $0Build a stateful object, sharing out the state. )Let object handle t. *Let object handle ReifiedProgramT. -$Change the workspace of the object. .3Apply a function to methods coming into an object.  !"#$%&'()*+,-. !"#$%&'()*+,-. !"#$%&'()*+,-. !"#$%&'()*+,-.  !"#%& TrustworthyHM/Object with a final result. Object f g "a Mortal f g Void5 Restricted /% constuctor, which can be applied to transit,  fromFoldable without ambiguousness. /01234567uvw /01234567 /01253467 /01234567uvw Trustworthy8-For every adjunction f "£ g, we can "connect"  Object g m and  Object f m permanently.;Create a source from a x container.@*Attack a rank-1 Mealy machine to a source.A*Attach a rank-1 Mealy machine into a sink. 89:;<=>?@A 89:;<=>?@A 89:;<=>?@A 89:;<=>?@A8 TrustworthyB4An object which is specialized to be a Mealy machineE 9_Process :: Iso' (Object (Request a b) m) (Process m a b)BCDEFGHIJKLMNOPBCDEBCDEPONMLKJIHGF BCDEFGHIJKLMNOPNone&3HJKMR1Build an object using continuation passing style.SThe flyweight pattern.TLike S, but it uses    internally.ZA mutable variable.QRSTUVWXYZ[\]^QRSTUVWXYZ[\]^RSTUVWXYQZ[\]^QRSTUVWXYZ[\]^(c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None &234=HJKMhInvoke a method. i(.^) for StateT k=We can convert method invocation into an object trivially. invocation i = liftO (i.-) _`abcdefghijk _`abcdefghijk e`abcd_fghijk _`abcdefghijkghij (c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None246=Klmnolmonlmmonl %(c) Corbin Simpson, Google Inc. 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental non-portable (ST) None&3=Kpqrspqsrpqqsrp None_`abcdefghijklmpq(c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable  Trustworthy &234HJKMO  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEQRSTUVWXYZ[\]^y !"##$%&'()*+,-./0123456789:;<<=>?@ABCDEFGHIJKLMNNOPQRSTUVWXYZ[\]^_`abcdefghijklmniopqrstu v w x y z { | }~€‚ƒ„…†‡objective-0.6.5Data.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'PushPullPullPushpushpullmapPushbipushbipull filterPush$fTowerPushPull$fProfunctorPushPullRequest mapRequestrequestacceptacceptM$fTowerRequest$fApplicativeRequest$fProfunctorRequestObject runObject@-echoliftOunfoldOunfoldOMstateful@>>@@<<@@>>^^>>@@**@@||@sharing@!@!! iterObject iterTObject sequential sequentialT iterative iterativeT transObject adaptObjectMortalunMortalmortal runMortal runMortal'mortal_immortal reincarnation$$$?$!$$! fromFoldablemapLmapRfilterLfilterR$$@@$$Process unProcess_Process$fFractionalProcess $fNumProcess$fChoiceProcess$fStrongProcess$fProfunctorProcess$fArrowChoiceProcess$fArrowProcess$fCategory*Process$fMonoidProcess$fApplicativeProcess$fFunctorProcessVariableoneshot flyweight flyweight'animatetransitannounce announceMaybeannounceMaybeTvariablemoorefoldPP*-invokeMonadObjective ObjectiveBaseInstInstOfnewInst'.->.-.^.&.! invocationInstIOnewIOTFCo:R:InstIOfg$fObjectiveBaseIOInstSTnewSTTFCo:R:InstSTfg$fObjectiveBaseSTminioperational-0.4.9Control.Monad.Operational.MiniReifiedProgram $fMonadMortal$fApplicativeMortal$fFunctorMortalbase Data.FoldableFoldable