Haskellのコア言語は本当にシンプルです。オブジェクト指向のバックグラウンドから来て、主な困難は純粋な機能パラダイムに適応することです。
「基本的な」Haskellを学習している間、私は常に言語拡張をCSの人々のためのおもちゃとして、または言語の将来のバージョン(from future import ???
Pythonなど)の実験として考えてきました。
しかし、YesodなどのWebフレームワークを見始めたとき、多くのソースファイルには3〜4個の拡張子が必要であることがわかりました。一部は非常にシンプルに見えます(StringOverload)。その他は本当に威圧的です(GADT、タイプファミリエ、テンプレートハスケル)。彼らのドキュメンテーションは、新しい図書館を「ただ」学ぶことを期待している誰かにとって怖い研究論文にリンクしています。
Haskellで生産的になるためにGHC言語拡張を学ぶ必要はありますか?もしあなたが本番アプリケーションのためにHaskell開発者を雇うとしたら、そのような知識を求めますか?