MonadError seems to have been redefined in 5.02 to have a fundep:
5.00.2:
class (Monad m) => MonadError e m
5.02:
class (Monad m) => MonadError e m | m -> e
Why? Perhaps the IO Monad can have only one kind or level of error, but
why can't other Monads have more?
Anyway, because of G
> > If xs is finite, your version of zipWith would evaluate the infinite
> > list [1..] one place beyond that which was really needed.
>
> Sure, there is a single extra amount of evaluation needed to work out if
> there is a following list item (I guess this could be quite high in more
> complex
On Sat, Oct 20, 2001 at 01:11:05AM +1000, Andrew J Bromage wrote:
> G'day all.
>
> On Fri, Oct 19, 2001 at 02:30:59PM +0100, Ian Lynagh wrote:
>
> > Also, the prelude definition of zipWith has LVL whereas the following
> > definition has LVV. Why is something like the following not used?
> >
>