我有过这样的经历,现在几次有GHC告诉我用的延伸,却意外地发现,当使用该扩展我做的代码复杂得多,当一个简单的重构将允许我坚持哈斯克尔98(现2010 ),并有一个更简单的解决方案。
在另一方面,也有时候GADT的或Rank2Types(很少RankNTypes)就少得多的工作和更清洁的代码。
其扩展一般倾向于掩盖了更好的设计的可能性,并普遍提高了吗? 如果有一些两者都做,什么应用户寻找(确保其真实与否,他们正打算解决方案的真正的)决定使用该扩展之前?
(参见我应该使用GHC Haskell的扩展或不呢? )