[Haskell] Force evaluation

Jules Bean jules at jellybean.co.uk
Mon Dec 6 11:27:42 EST 2004


On 6 Dec 2004, at 15:24, Michael Walter wrote:

> Hi,
>
> is there a way to force the "full" evaluation of a value (unless seq,
> which only brings the term to WHNF)?
>
> In my case, I have an algebraic data type Foo,
> and I would like to catch the exceptions that will occur during the
> evaluation of a value of Foo, for something like:
>
>   foo <- force makeFoo `catch` \e -> defaultFoo
>

Depending on what kind of exceptions you are working with, you may 
prefer to use the 'MonadError' routines over the 'Either' monad. When 
you work in Either you can be sure that the value has been sufficiently 
evaluated to check whether or not an error occurs.

If you want to catch asynchronous, OS-level exceptions then Either 
isn't good enough.

Jules



More information about the Haskell mailing list