mmandChannel -> IO ThreadId
readerProcess cmdChan = do
    forkIO $ proc cmdChan
  where
    proc cmdChan = forever $ do
        line <- getLine
        atomically . writeTChan cmdChan $
            case line of
                "help" -> Help
                "quit" -> Quit
                "show" -> Show
                cmd    -> Unknown cmd


readerProcess :: CommandChannel -> IO ThreadId
readerProcess cmdChan = do
    forkIO $ proc cmdChan
  where
    proc cmdChan = forever $ do
        line <- getLine
        atomically . writeTChan cmdChan $
            case line of
                "help" -> Help
                "quit" -> Quit
                "show" -> Show
                cmd    -> Unknown cmd
readerProcess cmdChan = do
    forkIO $ proc cmdChan
  where
    proc cmdChan = forever $ do
        line <- getLine
        atomically . writeTChan cmdChan $
            case line of
                "help" -> Help
                "quit" -> Quit
                "show" -> Show
                cmd    -> Unknown cmd