Ngôn ngữ cốt lõi của Haskell thực sự đơn giản. Đến từ nền tảng OO, khó khăn chính là thích nghi với mô hình chức năng thuần túy.
Trong khi học Haskell "cơ bản", tôi luôn coi các phần mở rộng ngôn ngữ là đồ chơi cho người CS hoặc là thử nghiệm cho các phiên bản ngôn ngữ trong tương lai (như from future import ???
trong python).
Tuy nhiên, khi tôi bắt đầu xem xét các khung web như Yesod, tôi thấy rằng rất nhiều tệp nguồn yêu cầu giữa 3 và 4 phần mở rộng. Một số trông khá đơn giản (StringOverload). Những thứ khác thực sự đáng sợ (GADT, Type Famillies, Template Haskell). Tài liệu của họ liên kết đến các tài liệu nghiên cứu, điều đáng sợ đối với ai đó muốn học "chỉ" một thư viện mới.
Có nhất thiết phải học các phần mở rộng ngôn ngữ GHC để có hiệu quả trong Haskell không? Nếu bạn thuê một nhà phát triển Haskell cho một ứng dụng sản xuất, bạn có hỏi kiến thức như vậy không?