Safe Haskell | None |
---|---|
Language | Haskell2010 |
The main game action monad type implementation. Just as any other
component of the library, this implementation can be substituted.
This module should not be imported anywhere except in Action
to expose the executor to any code using the library.
- executorCli :: CliImplementation () -> Maybe SessionUI -> COps -> FactionId -> ChanServer -> IO ()
- data CliState = CliState {
- cliState :: !State
- cliClient :: !StateClient
- cliSession :: !(Maybe SessionUI)
- cliDict :: !ChanServer
- cliToSave :: !(ChanSave (State, StateClient, Maybe SessionUI))
- newtype CliImplementation a = CliImplementation {}
Documentation
executorCli :: CliImplementation () -> Maybe SessionUI -> COps -> FactionId -> ChanServer -> IO () Source #
Init the client, then run an action, with a given session,
state and history, in the IO
monad.
Internal operations
CliState | |
|
newtype CliImplementation a Source #
Client state transformation monad.
Monad CliImplementation Source # | |
Functor CliImplementation Source # | |
Applicative CliImplementation Source # | |
MonadStateRead CliImplementation Source # | |
MonadStateWrite CliImplementation Source # | |
MonadAtomic CliImplementation Source # | The game-state semantics of atomic commands as computed on the client. |
MonadClientSetup CliImplementation Source # | |
MonadClient CliImplementation Source # | |
MonadClientUI CliImplementation Source # | |
MonadClientWriteRequest CliImplementation Source # | |
MonadClientReadResponse CliImplementation Source # | |