import TestSample import Control.EventDriven ( putEvent_, initializeTalker ) import Control.Monad.Tools main :: IO () main = runTalker myConfig runTalker :: Config -> IO () runTalker cfg = do let itk = initializeTalker ( initV cfg ) ( kbind cfg ) doWhile itk $ \tk -> do cmd <- ( input cfg ) mtk <- putEvent_ ( ebind cfg ) ( output cfg ) tk cmd return $ case mtk of Nothing -> ( tk , False ) Just ntk -> ( ntk, True ) return ()