úÎ=ž9û<      !"#$%&'()*+,-./0123456789:;(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> provisionalGADTs, Rank2TypesSafe !"+FIKLN 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 transforms effects. ,s can be composed just like functions using  ; the identity element is 4. Objects are morphisms of the category of actions.  Naturality/runObject obj . fmap f "a fmap f . runObject objAn infix alias for The trivial object -Lift a natural transformation into an object. 'The categorical composition of objects.  Reversed '(>>)' "Combine objects so as to handle a < of interfaces. An unwrapped analog of  id = unfoldO runObject  = unfoldO   = unfoldO Same as   but requires = insteadBuild a stateful object.  stateful t s = t ^>>@ variable sFlipped ?. it is super convenient to use with the LambdaCase extension. Cascading!Objects can consume free monads.  is more preferred.A mutable variable. variable = stateful id(Pass zero or more messages to an object.3Add capability to handle multiple messages at once.+Send a message to an object through a lens.5Send a message to objects in a traversable container. +announce = withBuilder . invokesOf traverse A method invocation operator on >. ?    ?  (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> provisionalGADTs, Rank2Types TrustworthyINUA I is an object that may die. A mortal yields a final result upon death.  f g forms a =: @ is a dead object and (A') prolongs the life of the left object. Object f g "a Mortal f g Void Construct a mortal in a  construction manner.!Send a message to a mortal." Restricted $ constuctor which can be applied to transit,  fromFoldable without ambiguousness.#+Turn an object into a mortal without death.$+Send a message to mortals through a filter.%Send a message to mortals in a B container. apprises = apprisesOf wither&)Send a message to mortals in a container. !"#$%&CDEF  !"#$%&  "!#$%&  !"#$%&CDEF(c) Fumiaki Kinoshita 2015 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  provisional GADTs, Rank2Types Safe!"INU)jInvoke a method with an explicit landing function. In case of exception, the original object will be set.*Invoke a method.,KTry to invoke a method. If the instance is unavailable, it returns Nothing.-/Create a new instance. This can be used inside unsafePerformIO to create top-level instances..DCreate a new instance, having it sitting on the current environment.'()*+,-.'()*+,-.'-.()*+,'()*+,-.*+(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableSafe &(+-4>KL // a b% is the type of a request that sends a to receive b.1 Apply a function to the body of /2 Create a /.3 Handle a /, smashing the continuation.4Add a step as a mealy machine5The flyweight object6Compose mealy machines82Create a mealy machine from a time-varying action. 4 animate f "a accumulator (+) 0 >~~> liftO (accept f)9Like 8, but the life is limited. /0123456789:; /0123456789 /01;:23456789 /0123456789:;(c) Fumiaki Kinoshita 2015 BSD3 (Fumiaki Kinoshita <fumiexcel@gmail.com>  experimental  non-portable Safe/  !"#$%&'()*+,-.G      !!"#$%&'()*+,-./01223456789:;<=>?@ABC>DEFABGABHIJKLMNOPobjec_K5o98IaOZYpBDogJtBxYnmControl.Object.ObjectControl.Object.MortalControl.Object.InstanceData.Functor.RequestControl.ObjectFallibleObject runObject@-^>>@@>>^echoliftO@>>@@<<@@||@unfoldOunfoldOMstateful@~ iterObject iterativevariable cascadeObject cascading invokesOfinvokesannounce@!= withBuilder filteredOfilterOMortalunMortalmortal runMortalmortal_immortal apprisesOfapprisesappriseInstance invokeOnUsinginvokeOn.-..-?-new newSettleRequest mapRequestrequestacceptmealy flyweight>~~> accumulatoranimatetransit$fApplicativeRequest$fProfunctorRequesttrans_GZTjP9K5WFq01xC9BAGQpFData.Functor.SumSumbaseGHC.BaseMonad Control.Monad.Trans.State.StrictStateT withBuilderMreturn>>=withe_ElKANIDqtTxCoHsngVEzvpData.Witherable Witherable$fMonadTransMortal $fMonadMortal$fApplicativeMortal$fFunctorMortal