众所周知的事实(>>=)可以使用而实现fmap,join并且join可以使用实现>>=.是否有任何理由我们没有Monad使用join包含和使用以下默认定义来定义类?
join x = x >>= id
x >>= f = join $ f <$> x
Run Code Online (Sandbox Code Playgroud)
这将允许最小定义包括just (>>=)或join,而不是强制(>>=).考虑到类别理论倾向于支持,可能会有点帮助join.
反对修改类的常见理由是我们打破了向后兼容性.但是,在这种情况下,这不会发生 - 我们只增加了定义Monad使用的可能性join.
dup*_*ode 21
这应该与Applicative-Monad提案(已经进入GHC 7.10)一起发生.但是,GHC中存在一个涉及类型角色的技术问题,它无限期地推迟了您的建议.
| 归档时间: |
|
| 查看次数: |
493 次 |
| 最近记录: |