úÎ# ^%      !"#$None%&%&mGeneralizedNewtypeDeriving, FlexibleInstances, MultiParamTypeClasses, StandaloneDeriving, ScopedTypeVariables experimental'Matthew Mirman <mmirman@andrew.cmu.edu>None; is a declaration that the given monad can be made into a  servlet.  '()*     '()*¾GeneralizedNewtypeDeriving, StandaloneDeriving, ScopedTypeVariables, FlexibleInstances, UndecidableInstances, MultiParamTypeClasses, FunctionalDependencies, IncoherentInstances, TypeFamilies experimental'Matthew Mirman <mmirman@andrew.cmu.edu>None w m a> is a newtype over a server transformer that adds the phantom  host argument w  World/ declares that the world is a host. It should J only have one constructor, and the location and port should be invariant  of the given constructor.  Specifically,  and ) should work even if bottom is supplied.  runs a name server and doesn' t return ; runs a name server on a background thread and does return 6 declares that the code is running on the given host. ? it is usefull when a type inference is wanted, but the action E also needs to be made into a service and used as a remote procedure  +,-./012   +,-./012None!$(! "HostName" " hostLocation" hostPortNumber)  makes a newtype HostName and declares an  instance Host HostName. "$(" ' serviceNm) simply splices in   (undefined :: typeofcall) " serviceNm" which is typed in a manner  similar to typeofcall. #$(# ['service1 ,..., 'serviceN]) makes all given ( services listen for incoming requests. $$($ 'World)% finds all services declared in the 1 module that definitely run on the given world, . and makes them listen for incoming requests. !"#$3!"#$"!#$!"#$3Many GHC only extensions experimental'Matthew Mirman <mmirman@andrew.cmu.edu>None!"#$$!#"4     !"#$%&'()*+,-./0123456789:;<rpc-framework-0.2.0.0Network.Remote.RPC#Network.Remote.RPC.Internal.Runtime'Network.Remote.RPC.Internal.MultiServer%Network.Remote.RPC.Internal.TemplatesControl.Concurrent.Forkabletransformers-0.3.0.0Control.Monad.Trans.Class MonadTransliftControl.Monad.IO.ClassliftIOForkableforkIOServableAIOStateHandlers ServiceIDLocName LocNumbersendrecv startServersafeFind getHandlers addServiceaddServiceByNameconnectToServiceSendableRefWIOHost getLocationgetPortgetValue runServer runServerBGonHostrealRemoteCall makeServicemakeHostrpcCall makeServices autoService$fForkableReaderT $fForkableIO $fServableAIO $fServableIO$fMonadReaderMVarAIO$fMonadTransAIO$fService(->)mw$fServiceWIOmw$fRPC(->)(->)mw'$fRPCWIOWIOm'w'$fSendablem(->)(->)$fSendablemaa'$fMonadTransWIO $fServableWIO $fMonadIOQ