Excerpts from Tom Ellis's message of Sat Mar 09 00:34:41 -0800 2013: > 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?
Sure. Prelude> let x = undefined :: IO a Prelude> x `seq` () *** Exception: Prelude.undefined Prelude> (x >>= undefined) `seq` () () > > For non-IO monads, since everything is imprecise anyway, it doesn't > > matter. > > Could you explain what you mean by "imprecise"? Imprecise as in imprecise exceptions, http://research.microsoft.com/en-us/um/people/simonpj/papers/imprecise-exn.htm Edward _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe