Monad for Const?

时间:2012-07-17 20:29:53

标签: haskell monads

为什么Control.Applicative.Const没有monad实例?以下定义是正确的,还是违反了monad法则?

instance Monoid a => Monad (Const a) where
  return _ = Const mempty
  (Const x) >>= _ = Const x

你能想到任何有用的应用吗?

1 个答案:

答案 0 :(得分:18)

违反了left identity lawreturn x >>= f必须与f x相同,但请考虑f x = Const (x + 1)