Il linguaggio di base di Haskell è davvero semplice. Proveniente da un background OO, la principale difficoltà è quella di adattarsi al paradigma funzionale puro.
Durante l'apprendimento di Haskell "di base", ho sempre considerato le estensioni del linguaggio come giocattoli per persone CS o come esperimenti per le versioni future del linguaggio (come from future import ???
in Python).
Tuttavia, quando ho iniziato a guardare framework web come Yesod, ho scoperto che molti file sorgente richiedono tra 3 e 4 estensioni. Alcuni sembrano abbastanza semplici (StringOverload). Altri sono davvero intimidatori (GADT, Type Famillies, Template Haskell). La loro documentazione si collega a documenti di ricerca, il che fa paura a qualcuno che si aspetta di imparare "solo" una nuova biblioteca.
È necessario imparare le estensioni del linguaggio GHC per essere produttivi in Haskell? Se dovessi assumere uno sviluppatore Haskell per un'applicazione di produzione, chiederesti tale conoscenza?