Copyright | (C) 2016, The University of Kansas |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Andy Gill |
Stability | Alpha |
Portability | GHC |
Safe Haskell | Safe |
Language | Haskell2010 |
- data RemoteApplicative c p a
- command :: c -> RemoteApplicative c p ()
- procedure :: p a -> RemoteApplicative c p a
- class RunApplicative f where
- runApplicative :: Monad m => (f c p ~> m) -> RemoteApplicative c p ~> m
- runWeakApplicative :: forall m c p. Applicative m => (WeakPacket c p ~> m) -> RemoteApplicative c p ~> m
- runStrongApplicative :: forall m c p. Monad m => (StrongPacket c p ~> m) -> RemoteApplicative c p ~> m
- runApplicativeApplicative :: (ApplicativePacket c p ~> m) -> RemoteApplicative c p ~> m
The remote applicative
data RemoteApplicative c p a Source
RemoteApplicative
is our applicative that can be executed in a remote location.
Functor (RemoteApplicative c p) Source | |
Applicative (RemoteApplicative c p) Source |
The primitive lift functions
command :: c -> RemoteApplicative c p () Source
promote a command into the applicative
procedure :: p a -> RemoteApplicative c p a Source
promote a command into the applicative
The run functions
class RunApplicative f where Source
RunApplicative
is the overloading for choosing the appropriate bundling strategy for applicative.
runApplicative :: Monad m => (f c p ~> m) -> RemoteApplicative c p ~> m Source
This overloaded function chooses the appropriate bundling strategy based on the type of the handler your provide.
runWeakApplicative :: forall m c p. Applicative m => (WeakPacket c p ~> m) -> RemoteApplicative c p ~> m Source
The weak remote applicative, that sends commands and procedures piecemeal.
runStrongApplicative :: forall m c p. Monad m => (StrongPacket c p ~> m) -> RemoteApplicative c p ~> m Source
The strong remote applicative, that bundles together commands.
runApplicativeApplicative :: (ApplicativePacket c p ~> m) -> RemoteApplicative c p ~> m Source
The applicative remote applicative, that is the identity function.