Основна мова Haskell - це дуже просто. Виходячи з фону ОО, головна складність полягає в адаптації до чистої функціональної парадигми.
Під час вивчення "базового" Haskell, я завжди розглядав розширення мови як іграшки для людей з CS або як експерименти для майбутніх версій мови (як from future import ???
у python).
Однак, коли я почав переглядати веб-рамки, такі як Yesod, я виявив, що багато файлів вихідних файлів потребують між 3 та 4 розширеннями. Деякі виглядають досить просто (StringOverload). Інші насправді залякують (GADT, Type Famililies, Template Haskell). Їх документація посилається на науково-дослідні роботи, що страшно для тих, хто очікує навчитися «просто» новій бібліотеці.
Чи потрібно вивчити розширення мови GHC, щоб бути продуктивними в Haskell? Якби ви найняли розробника Haskell для виробничого додатка, ви б попросили таких знань?