
On 11-06-09 04:14 PM, Alexander V Vershilov wrote:
Hello.
I'm writing a small tcp server with that can handle connections and answer by rules writen in a small script that can be interpreted by server. For this purpose I've written an interpreter that has type
ErrorT MyError (StateT ScriptState IO)
so I can call "native" IO function in that script, and define new one. I can run this script with runState (runErrorT (...)) oldState.
But there is one problem: in script i should be able to call functions that will stop script interpretation and wait for some server event. To continue interpretation.
Can smb give an advice what is the best way to do it?
It appears you've already settled on operational, and that's a good choice. I just wanted to point out the monad-coroutine as a possible alternative. The two packages have lots of similarities, the main difference appears to be in the way the monad suspension is seen: Prompt vs. Functor.