El lenguaje central de Haskell es realmente simple. Viniendo de un entorno OO, la principal dificultad es adaptarse al paradigma funcional puro.
Mientras aprendía Haskell "básico", siempre he considerado las extensiones de lenguaje como juguetes para personas con CS o como experimentos para futuras versiones del lenguaje (como from future import ???en Python).
Sin embargo, cuando comencé a mirar marcos web como Yesod, descubrí que muchos archivos fuente requieren entre 3 y 4 extensiones. Algunos parecen bastante simples (StringOverload). Otros son realmente intimidantes (GADT, Type Famillies, Template Haskell). Su documentación enlaza con trabajos de investigación, lo que da miedo a alguien que espera aprender "solo" una nueva biblioteca.
¿Es necesario aprender extensiones de lenguaje GHC para ser productivo en Haskell? Si contrataras a un desarrollador de Haskell para una aplicación de producción, ¿pedirías ese conocimiento?