Hi

Keith Wansbrough wrote:
Dear All,

List and IO are both monads when appropriate operations are defined.

The IO monad, which is a one-way monad, does not have a function of
type IO a -> a, in general, except an unsafe function "unsafePerformIO :: IO a -> a". A two-way monad, such as List, has such a function "head :: [a] -> a".

But "head" sometimes fails. So List isn't a two-way monad either. (if you accept partial functions, then *all* monads are two-way, since

[..]

...partiality is itself a monadic effect?

Cheers

Conor

--
http://www.cs.rhul.ac.uk/~conor
_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to