在Haskell中有没有因为我们无法实现return而不能成为monad的仿函数的示例?

我看过this answer并从中得到启发。

直观上来说,我们总是可以通过使用类型构造函数来实现return。但是我一定想念一些东西。

最佳答案

这正是the Bind typeclass所代表的:具有绑定(bind)操作但不一定返回的事物。这些类型是Bind的实例,但不是Monad的实例,因为它们没有return:

  • (,) wWriterT w mRWST r w s m,只要wSemigroup而不是Monoid
  • Map kHashMap kIntMap k
  • V1 (注意:这与Daniel Wagner's Whoops pigworker's Dead 同构)
  • 10-06 02:45