úÎ6v3×      "(C) 2016, The University of Kansas BSD-style (see the file LICENSE) Andy GillAlphaGHCSafe!"*4;>N  H of a container for procedures, and other structures that are refreshed. ! ! !"(C) 2016, The University of Kansas BSD-style (see the file LICENSE) Andy GillAlphaGHCSafe!"*345>8A Weak Packet, that can encode a command or a procedure."(C) 2016, The University of Kansas BSD-style (see the file LICENSE) Andy GillAlphaGHCSafe!">IKLNA Hughes-style version of , with efficent append.YA Strong Packet, that can encode a list of commands, terminated by an optional procedure.    "(C) 2016, The University of Kansas BSD-style (see the file LICENSE) Andy GillAlphaGHCSafe !">IKLN UA Remote Applicative, that can encode both commands and procedures, bundled together.This simulates a  º, to see if it only contains commands, and if so, returns the static result. The commands still need executed. The term super-command is a play on Hughes' super-combinator terminology. "#    "#"(C) 2016, The University of Kansas BSD-style (see the file LICENSE) Andy GillAlphaGHCSafe !">IKLN> is our applicative that can be executed in a remote location.8 is our monad that can be executed in a remote location. $%&'()*+$%&$%&'()*+"(C) 2016, The University of Kansas BSD-style (see the file LICENSE) Andy GillAlphaGHCSafe !">IKLNS is the overloading for choosing the appropriate bundling strategy for applicative.tThis overloaded function chooses the appropriate bundling strategy based on the type of the handler your provide.&promote a command into the applicative&promote a command into the applicativeJThe weak remote applicative, that sends commands and procedures piecemeal.>The strong remote applicative, that bundles together commands.BThe applicative remote applicative, that is the identity function. ,-. ,-."(C) 2016, The University of Kansas BSD-style (see the file LICENSE) Andy GillAlphaGHCSafe !"IKLNUO is the overloading for choosing the appropriate bundling strategy for a monad.tThis overloaded function chooses the appropriate bundling strategy based on the type of the handler your provide.'promote a command into the remote monad)promote a procedure into the remote monadÈThis is a remote monad combinator, that takes an implementation of a remote applicative, splits the monad into applicatives without any merge stragegy, and uses the remote applicative. Every / will generate a call to the 7 handler; as well as one terminating call. Using runBindeeMonad with a runWeakApplicative gives the weakest remote monad.gThis is the classic weak remote monad, or technically the weak remote applicative weak remote monad.HThis is the classic strong remote monad. It bundles packets (of type =) as large as possible, including over some monadic binds.RThe is the strong applicative strong remote monad. It bundles packets (of type >) as large as possible, including over some monadic binds. 012   0123           !!"#$%&'()*+,-./01234remot_ECv1xZk4WKaI8dBLIdJCeZ Control.Remote.Monad.Packet.Weak"Control.Remote.Monad.Packet.Strong'Control.Remote.Monad.Packet.ApplicativeControl.Remote.ApplicativeControl.Remote.Monad%Control.Remote.Monad.Packet.TransportControl.Remote.Monad.Types WeakPacketCommand Procedure$fReadTransport HStrongPacket StrongPacketDoneApplicativePacketPure superCommandRemoteApplicative RemoteMonadRunApplicativerunApplicativecommand procedurerunWeakApplicativerunStrongApplicativerunApplicativeApplicativeRunMonadrunMonadrunMonadSkeleton runWeakMonadrunStrongMonadrunApplicativeMonad Transport$fApplicativeApplicativePacket$fFunctorApplicativePacketApplBind$fApplicativeRemoteApplicative$fFunctorRemoteApplicative$fMonadRemoteMonad$fApplicativeRemoteMonad$fFunctorRemoteMonad!$fRunApplicativeApplicativePacket$fRunApplicativeStrongPacket$fRunApplicativeWeakPacketbaseGHC.Base>>=$fRunMonadApplicativePacket$fRunMonadStrongPacket$fRunMonadWeakPacket