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 ()
