The Proper Definition of (evaluate :: a -> IO a)

Stefan O'Rear stefanor at cox.net
Tue May 8 20:50:34 EDT 2007


On Tue, May 08, 2007 at 05:47:27PM -0700, Ashley Yakeley wrote:
> Simon Marlow wrote:
> >That's exactly right.  Evaluate was introduced because it does something 
> >different from (return $!).  We tried in the documentation to be clear 
> >about its semantics, but perhaps we weren't clear enough.  I'll add 
> >Isaac's suggested definition to the docs.
> 
> If Isaac's definition is accurate, we might as well generalise it to any 
> Monad.

Isaac's definition is equivalent to the standard evaluate as I proved.
However, my proof could be using misfeatures of IO.

Stefan


More information about the Libraries mailing list