úÎ::4Ð\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[(c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None &(+-3=JK2'Request a b' is the type of a request that sends a to receive b.  (c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None &(+-3=JK (The type for asynchronous input/output.  GfilterPush :: (a -> Bool) -> PushPull a b r -> Program (PushPull a b) r      (c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone &+234HJKMObject with a final result. Object f g "a Mortal f g Void4An object which is specialized to be a Mealy machine The type  Object f g. represents objects which can handle messages f%, perform actions in the environment g@. It can be thought of as an automaton that converts effects. ,s can be composed just like functions using !; the identity element is  4. Objects are morphisms of the category of functors An alias for . The identity object!Object-object composition"Object-function composition#Function-object composition&-Lift a natural transformation into an object.'#Change the workspace of the object.(8Apply a function to the messages coming into the object.)1Build an object using continuation passing style.*Build a stateful object.stateful t s = t ^>> variable s@+The unwrapped analog of * unfoldO runObject = id "unfoldO runSequential = sequential unfoldO iterObject = iterable-A mutable variable../Build a stateful object, sharing out the state./)An object that won't accept any messages.06Extend an object by adding another independent object.1The flyweight pattern.2Like 1, but it uses  internally.7%Let object handle sequential methods.8%Let object handle sequential methods.B 9_Process :: Iso' (Object (Request a b) m) (Process m a b)D-For every adjunction f "£ g, we can "connect"  Object g m and  Object f m permanently.ELike D, but kept until the right  dies.FLike D, but kept until the left  dies.G Connect two s.A !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG\]^_`abcdefghi3 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG3& )*-+,;<.=>!"#$%/0'(DEFG3478569:12?@ABC; !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG\]^_`abcdefghi !"#$%034DEFG(c) Fumiaki Kinoshita 2014BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableNone &234=HJKMPInvoke a method.Q(.^) for StateTS<We can convert method invocation into an object trivially. invocation i = liftO (i.-) HIJKLMNOPQRS HIJKLMNOPQRS NIJKLMHOPQRSHIJKLMNOPQRSOPQR(c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None246=KTUVWTUWVTUUWVT%(c) Corbin Simpson, Google Inc. 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental non-portable (ST) None&3=KXYZ[XY[ZXYY[ZX NoneHIJKLMNOPQRSTUXYj       !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopobjective-0.6.3Data.Functor.RequestData.Functor.PushPullControl.ObjectControl.Monad.Objective.ClassControl.Monad.Objective.IOControl.Monad.Objective.ST Data.HashMapStrictControl.Monad.ObjectiveRequest mapRequestrequestacceptacceptM$fTowerRequest$fApplicativeRequest$fProfunctorRequest PushPull'PushPullPullPushmapPushpushpullbipushbipull filterPush$fTowerPushPull$fProfunctorPushPullMortalunMortalProcess unProcessVariableObject runObject@-echo@>>@@>>^^>>@@**@@||@liftO transObject adaptObjectoneshotstatefulunfoldOunfoldOMvariablesharingloner@|>@ flyweight flyweight'@!@!! iterObject iterTObject sequential sequentialT iterative iterativeTfoldPfoldP'animatetransitannounce announceMaybeannounceMaybeT_Process runMortal$$$$!!$$!$$!MonadObjective ObjectiveBaseInstInstOfnewinvokeInst'.-.^.&.! invocationInstIOnewIOTFCo:R:InstIOfg$fObjectiveBaseIOInstSTnewSTTFCo:R:InstSTfg$fObjectiveBaseST $fMonadMortal$fApplicativeMortal$fFunctorMortal$fFractionalProcess $fNumProcess$fChoiceProcess$fStrongProcess$fProfunctorProcess$fArrowChoiceProcess$fArrowProcess$fCategory*Process$fMonoidProcess$fApplicativeProcess$fFunctorProcess