【发布时间】:2012-06-19 13:45:59
【问题描述】:
一个简单的问题,我希望:binary 包定义了两种类型,Get and Put。前者本质上是一个状态单子,后者本质上是一个作家。 state 和 writer 都有合理的 MonadFix 实例,所以我希望 Get 和 Put 也可以。
Get 可以。 Put 没有。那么,是否可以为Put(真的为PutM)定义一个合适的MonadFix 实例?
一个更普遍的问题是:通常如何验证一个类型类实例是否真正满足该类型类的规则?
【问题讨论】:
-
如何验证一个类型类是否满足定律:写下你要验证的方程,代入函数的定义,然后求值。这会导致两个相等的术语吗?如果是,则符合法律规定;否则,不。
标签: haskell typeclass monadfix