Difference between revisions of "Talk:What a Monad is not"

From HaskellWiki
Jump to: navigation, search
Line 11: Line 11:
   
 
Although I agree that the common issue is too mix monad and impurity, and the impurity question is only releated to IO.
 
Although I agree that the common issue is too mix monad and impurity, and the impurity question is only releated to IO.
  +
  +
== "Monads are not values" ==
  +
  +
Yes they are! But they are not of the type of their arguments. For instance "return 3" is a value that has (or can have) type "IO Int". But it is not a value of type Int. —[[User:Ashley Y|Ashley Y]] 23:44, 23 November 2009 (UTC)

Revision as of 23:44, 23 November 2009

Nicolas Pouillard Comments

I disagree with: "So ordering is not in any way essential to what a monad is."

There is commutative monads, great! Other than that the order is important. Moreover there is nothing wrong to see >>= as a sequencing operator.

I also disagree the "IO is impure" paragraph: Indeed only IO will trigger visible side effects, but this is only due to the common evaluation of IO primitives. Moreover I would say that only the runtime system is impure because it does reduce 'main :: IO ()', other than that we are just building a computation plan in a pure way.

Although I agree that the common issue is too mix monad and impurity, and the impurity question is only releated to IO.

"Monads are not values"

Yes they are! But they are not of the type of their arguments. For instance "return 3" is a value that has (or can have) type "IO Int". But it is not a value of type Int. —Ashley Y 23:44, 23 November 2009 (UTC)