Jules Bean wrote:


No. Well: they are functions 'on' types, but functions 'on' types map values to values.


Analogy: In the category of sets and functions, the objects are sets and the morphisms are functions. The functions --- from sets to sets --- take objects in one set to objects in another set.

Specifically:

A monad T is a (endo)functor T : * -> * where * is the category of types, together with a multiplication mu and a unit eta.

So, * is the category of Types, and functions on type (which map values to values), and T is
an endofunctor (mapping functions on type to functions on type).


How does this affect the IO monad though?

   m >>= (\a -> mzero) === mzero

If we consider the state monad, surely the above makes no comment on what
the final state should be, only the final value returned...

Or is MonadPlus not definable on State monads?

If it is then considering IO === ST RealWorld, would imply that the actions
of the IO monad are not important as long as the final value returned is
mzero?

   Keean.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to