runPrompt :: Console -> InOutChannel Msg Msg -> IO ()
runPrompt con ch = do
  writeConsole con "> "
  msg <- getLine con
  IVC.put ch (Msg msg)
  unless (all isSpace msg) $ do
    Msg rsp <- IVC.get ch
    writeConsole con ("Encoded result: " ++ rsp ++ "\n")
    runPrompt con ch
runPrompt :: Console -> InOutChannel Msg Msg -> IO ()
runPrompt con ch = do
  writeConsole con "> "
  msg <- getLine con
  IVC.put ch (Msg msg)
  unless (all isSpace msg) $ do
    Msg rsp <- IVC.get ch
    writeConsole con ("Encoded result: " ++ rsp ++ "\n")
    runPrompt con ch
runPrompt con ch = do
  writeConsole con "> "
  msg <- getLine con
  IVC.put ch (Msg msg)
  unless (all isSpace msg) $ do
    Msg rsp <- IVC.get ch
    writeConsole con ("Encoded result: " ++ rsp ++ "\n")
    runPrompt con ch