Читайте до конца потока в haskell

Я довольно новичок в Haskell, и я хотел бы продолжать читать строки из консоли до конца потока и выводить все, что получаю, в верхнем регистре. Пока у меня есть

import Data.Char

main = myLoop

myLoop = do inp <- getLine
            if (inp == "x") 
              then putStrLn "Bye!"
              else do putStrLn(map toUpper inp)
                      myLoop

Тем не менее, я не могу понять, как избежатьif (inp == "x") и замените его условием окончания потока.

Короче говоря, я ищу эквивалент Хаскеллаwhile (cin >> line) в C ++

Ответы на вопрос(4)

Ваш ответ на вопрос