Что означает переключатель XNoMonomorphismRestriction?
Ответ 1
Отключает ограничение мономорфизма, которое ограничивает значения, которые не определены с помощью "нотации функций" ¹, чтобы иметь неполиморфный тип.
¹ "Без использования нотации функций" я имею в виду, что они определены как foo = something, а не foo bar = something, то есть определение не содержит явных аргументов.