Hello,
I'm wondering how can I use Happstack's MACID in my application without breaking everything.
I have a monad like that:
type Comm = StateT Communication IO
type GameState a = StateT Game Comm a
and many functions like:
foo :: GameState ()
foo = do
lift $ putComm <some message to player's channel>
modify <someAction>
The state of the game is stored in Game.
Comm is used as an abstraction to communicate over several channels with players.
Whereas MACID asks to use:
type Update state = Ev (StateT state STM)
How can I use this without modifying everything??
I understand that MACID must record the <someAction> from above but the message should not.
Thanks for help!
Corentin