Вы должны убедиться, что для wxWidgets, использованных для сборки wxhaskell, включена поддержка Unicode. Я думаю, что вы можете проверить, запустив wx-config --libs --unicode.
Что я думаю, так это то, что wxWidgets ожидает простые 8-битные символы, но получает широкие 32-битные. Нули интерпретируются как нулевые символы, то есть разделители строк. Включение поддержки Unicode дает вам wxWidgets, который принимает широкие символы. Я не совсем уверен, что эта версия истории достаточно точна, но я знаю, что Unicode wxWidgets решает проблему.
Я полагаю, что в большинстве дистрибутивов Linux пакет wxWidgets уже поддерживает Unicode.
В MacOS X в комплекте wxWidgets есть поддержка Unicode, но, к сожалению, отсутствуют некоторые необходимые функции, связанные с обработкой событий. Самый простой способ получить работающий wxWidgets - через Homebrew (обновление brew; brew install wxmac).
Я никогда не пробовал wxhaskell в Windows, но другие пробовали.