cpsGetChar :: ContT r IO Char cpsGetChar = do c <- liftIO getChar return c cpsProcessChar :: Char -> ContT r IO () cpsProcessChar c = do liftIO $ putChar c return ()