Это может показаться немного смешным, но GHC не скомпилирует мою строку, содержащую бекон, круассан, огурец и картофель:
main = putStrLn "🥓 🥐 🥒 🥔"
Я понимаю, что я мог легко написать
main = putStrLn "\x1F953 \x1F950 \x1F952 \x1F954"
к тому же эффекту, но я всегда предполагал, что GHC примет любой юникод в своем источнике. Итак: каковы фактические ограничения на символы Unicode, которые GHC принимает в исходных файлах?
BTW: Я понимаю, что поддержка такого рода ада для GHC lexer (на самом деле я столкнулся с вышеупомянутой проблемой при написании тестовых примеров для lexer, которые я написал), но я все еще немного разочарован.