On Fri, Mar 08, 2013 at 08:53:15PM -0800, Edward Z. Yang wrote:
> Are these equivalent? If not, under what circumstances are they not
> equivalent? When should you use each?
> 
>     evaluate a >> return b
[...]
>     - Use 'evaluate' when you mean to say, "Evaluate this thunk to HNF
>       before doing any other IO actions, please."  Use it as much as
>       possible in IO.

I've never looked at evaluate before but I've just found it's haddock and
given it some thought.

    
http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Exception-Base.html#v:evaluate

Since it is asserted that

    evaluate x = (return $! x) >>= return

is it right to say (on an informal level at least) that evaluating an IO
action to WHNF means evaluating it to the outermost >>= or return?

> For non-IO monads, since everything is imprecise anyway, it doesn't
> matter.

Could you explain what you mean by "imprecise"?

Tom

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

Reply via email to