27 Sep
2008
27 Sep
'08
6:12 a.m.
On Fri, Sep 26, 2008 at 5:37 PM, Andrew Coppin <andrewcoppin@btinternet.com> wrote:
As already noted, Data.Set *should* be a Monad, but can't be. The type system won't allow it. (And I know I'm not the first person to notice this...)
I wouldn't say that. It's important to remember that Haskell class Monad does not, and can not, represent *all* monads, only (strong) monads built on a functor from the category of Haskell types and functions to itself. Data.Set is a functor from the category of Haskell types *with decidable ordering* and *order-preserving* functions to itself. That's not the same category, although it is closely related. -- Dave Menendez <dave@zednenem.com> <http://www.eyrie.org/~zednenem/>