Если вы работаете с Unicode, вы можете попробовать utf8-string package
import System.IO hiding (hPutStr, hPutStrLn, hGetLine, hGetContents, putStrLn)
import System.IO.UTF8
import Codec.Binary.UTF8.String (utf8Encode)
main = System.IO.UTF8.putStrLn "Вася Пупкин"
Однако это не сработало в моем интерфейсе командной строки Windows, искажая вывод из-за кодовой страницы. Я ожидаю, что он будет работать нормально на других Unix-подобных системах, если ваш языковой стандарт установлен правильно. Однако запись в файл должна быть успешной во всех системах.
ОБНОВЛЕНИЕ:
Пример об использовании пакета кодирования.