[Haskell-cafe] Laziness and Either

Malcolm Wallace malcolm.wallace at cs.york.ac.uk
Mon Apr 21 16:05:48 EDT 2008


>  But when I did a simple
> refactoring to use Either, it occurred to me that this switch likely  
> had a
> negative impact on laziness.

Yes, probably.

> Is this analysis sensible?  If so, are there better solutions?

I notice that your Maybe-based code is written in a monadic style.  If  
you also use Applicative Functors with an appropriately lazy instance  
for Maybe, you may be able to be both lazy (where needed) and strict  
(where needed) just by mixing and matching do-notation with apply- 
notation.

The technique is explored in this paper about partial parsing:
     http://www-users.cs.york.ac.uk/~malcolm/partialparse.html

Regards,
     Malcolm



More information about the Haskell-Cafe mailing list