終了やカウントクリアに対応してみた。

import System.Exit

main = do putStrLn "quit code is 'q', count clear code 'c'"
mapM_ (\n -> print n >> getLine >>= f) [0..]

f "quit" = exitWith ExitSuccess
f "clear" = main
f _ = return ()