úÎ3A.šP      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO(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 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None &(+-3=JK 2'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 &+234HJKM5An object which is specialized to be a Mealy machine CThe 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 . 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. #9Apply a function to the messages coming into the object. $2Build 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. )0Build a stateful object, sharing out the state. **An object that won't accept any messages. +7Extend an object by adding another independent object. ,The flyweight pattern. -Like ,, but it uses  internally. 3&Let object handle sequential methods. 4&Let object handle sequential methods. < 9_Process :: Iso' (Object (Request a b) m) (Process m a b)3 !"#$%&'()*+,-./0123456789:;<PQRSTUVWXYZ( !"#$%&'()*+,-./0123456789:;<(!$%(&'78) *+"#./341256,-9:;<0/ !"#$%&'()*+,-./0123456789:;<PQRSTUVWXYZ +(c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None &234=HJKMDInvoke a method. E(.^) for StateT G=We can convert method invocation into an object trivially. invocation i = liftO (i.-) =>?@ABCDEFG =>?@ABCDEFG B>?@A=CDEFG=>?@ABCDEFGCDEF(c) Fumiaki Kinoshita 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable None246=KHIJKHIKJHIIKJH%(c) Corbin Simpson, Google Inc. 2014 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental non-portable (ST) None&3=KLMNOLMONLMMONL None=>?@ABCDEFGHILM[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abobjective-0.6.2Data.Functor.PushPullData.Functor.RequestControl.ObjectControl.Monad.Objective.ClassControl.Monad.Objective.IOControl.Monad.Objective.ST Data.HashMapStrictControl.Monad.Objective PushPull'PushPullPullPushmapPushpushpullbipushbipull filterPush$fTowerPushPull$fProfunctorPushPullRequest mapRequestrequestacceptacceptM$fTowerRequest$fApplicativeRequest$fProfunctorRequestProcess unProcessObject runObjectecho@>>@@>>^^>>@@**@@||@liftO transObject adaptObjectoneshotstatefulunfoldOunfoldOMvariablesharingloner@|>@ flyweight flyweight'@!@!! runSequential iterObject iterTObject sequential sequentialT iterative iterativeTfoldPfoldP'announce announceMaybeannounceMaybeT_ProcessMonadObjective ObjectiveBaseInstnewinvokeInst'.-.^.&.! invocationInstIOnewIOTFCo:R:InstIOfg$fObjectiveBaseIOInstSTnewSTTFCo:R:InstSTfg$fObjectiveBaseST$fFractionalProcess $fNumProcess$fChoiceProcess$fStrongProcess$fProfunctorProcess$fArrowChoiceProcess$fArrowProcess$fCategory*Process$fMonoidProcess$fApplicativeProcess$fFunctorProcess