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
- runApplicative :: (RunApplicative f, 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
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
runApplicative :: (RunApplicative f, Monad m) => (f c p ~> m) -> RemoteApplicative c p ~> m Source
This overloaded function chooses the best 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.