当我学习 Haskell 时,我发现现实生活中的代码中使用了很多语言扩展。作为初学者,我应该学习使用它们,还是应该不惜一切代价避免它们?我看到它破坏了与 Haskell 98 的兼容性,并将代码限制为几乎只有 GHC。但是,如果我在 Hackage 上浏览软件包,我发现它们中的大多数无论如何都是 GHC 专用的。
那么,社区对使用语言扩展的态度是什么?
如果可以使用扩展,我如何区分我可以“安全”使用的扩展(那些可能成为下一个 Haskell 标准的一部分)和那些主要是“实验性”的?例如,我认为-XDisambiguateRecordFields很好用,但将来可能会支持它吗?