【发布时间】:2011-08-09 11:19:45
【问题描述】:
我看到很多人抱怨标准库中的一些类型类说诸如“Monad 应该需要 Functor”甚至“Monad 应该需要 Applicative”、“Applicative 应该需要 Pointed”、“Num 不应该要求显示”等, 所以,我有一些问题:
对于类型类依赖树的方式是否存在社区感知的“缺陷”,或者这只是历史上事情的结果?
在多大程度上对此进行更改会破坏现有代码?
是否有基本类型类(特别是箭头、monad、applicative 等)的替代实现来实现“正确”的类依赖集?
【问题讨论】:
-
这里有一个更大的问题。我们怎么知道我们是正确的这个时间?如果我们发现我们错了,我们是否必须再次经历向后兼容性破坏的痛苦?有关这个更大问题的建议解决方案,请参阅“类型类同义词”。
-
@luqui 你(或其他任何人,就此而言)是否有任何关于类型类同义词进入 GHC 的机会的信息?我可以找到关于(类似的)它们的第一次讨论可以追溯到 1995 年(!),但从那时起并没有发生太多事情。这会成为一个合理的 Google Summer of Code 项目吗?
标签: haskell typeclass standard-library