úÎ>Ð:ì?      !"#$%&'()*+,-./0123456789:;<=>(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> provisionalGADTs, Rank2TypesSafe !"+EHJKMHigher-order profunctors 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 A.  BC    BC  (c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> provisionalGADTs, Rank2Types TrustworthyHMTA I is an object that may die. A mortal yields a final result upon death.  f g forms a @: D is a dead object and (E') 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 F container. apprises = apprisesOf wither')Send a message to mortals in a container. !"#$%&'GHIJ  !"#$%&'  !#"$%&'  !"#$%&'GHIJ(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> provisionalGADTs, Rank2TypesSafe!"HM (TMVar-based instance*2Invoke a method with an explicit landing function.+2Invoke a method with an explicit landing function.,Invoke a method, atomically.-Invoke a method..Take a snapshot of an instance.//Create a new instance. This can be used inside unsafePerformIO to create top-level instances.0DCreate a new instance, having it sitting on the current environment.1Create a new instance. ()*+,-./01K ()*+,-./01 ()/01*+-,. ()*+,-./01K,-(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableSafe &(+-3=JK 22 a b% is the type of a request that sends a to receive b.4 Apply a function to the body of 25 Create a 2.6 Handle a 2, smashing the continuation.7Add a step as a mealy machine8The flyweight object9Compose mealy machines;2Create a mealy machine from a time-varying action. 4 animate f "a accumulator (+) 0 >~~> liftO (accept f)<Like ;, but the life is limited. 23456789:;<=> 23456789:;< 234>=56789:;< 23456789:;<=>(c) Fumiaki Kinoshita 2015BSD3'Fumiaki Kinoshita <fumiexcel@gmail.com> experimental non-portableSafe2  !"#$%&'()*+,-./01L       !""#$%&'()*+,-./01234556789:;<=>?@ABCDEFAGHIJDEKDELMNOPQRSTUobjective-1.0.5Control.Object.ObjectControl.Object.MortalControl.Object.InstanceData.Functor.RequestControl.ObjectFallible HProfunctor^>>@@>>^Object runObject@-echoliftO@>>@@<<@@||@unfoldOunfoldOMstateful@~ iterObject iterativevariable cascadeObject cascading invokesOfinvokesannounce@!= withBuilder filteredOfilterOMortalunMortalmortal runMortalmortal_immortal apprisesOfapprisesappriseInstanceInstRefinvokeOn invokeOnSTM..-.-snapshotnew newSettlenewSTMRequest mapRequestrequestacceptmealy flyweight>~~> accumulatoranimatetransit$fApplicativeRequest$fProfunctorRequesttransformers-0.4.3.0Data.Functor.SumSumbaseGHC.BaseMonad Control.Monad.Trans.State.StrictStateT withBuilderM$fHProfunctorObjectreturn>>=witherable-0.1.3Data.Witherable Witherable$fMonadTransMortal $fMonadMortal$fApplicativeMortal$fFunctorMortal$fHProfunctorInstance