Ответ 1
От отчет Haskell:
Haskell использует набор символов Unicode. Однако исходные программы в настоящее время смещены в сторону набора символов ASCII, используемого в более ранних версиях Haskell.
Недавние версии GHC кажутся прекрасными с unicode (по крайней мере, в форме UTF-8):
Prelude> let пять=5; два=2; умножить=(*); на=id in пять `умножить` на два
10
(В случае, если вы задаетесь вопросом, "пять` умножить на два" означает "пять" умножить "на два" на русском языке.)
Ваши примеры не работают, потому что эти символы являются "символами" и могут использоваться в операциях infix, но не в именах функций. См. Раздел "uniSymbol" в отчете.
Prelude> let x € y = x * y in 2 € 5
10