Ross Paterson wrote: > On Sat, Dec 30, 2006 at 10:31:30PM +0000, Chris Kuklewicz wrote: >> But WriterT is not lazy enough. So I put a lazier version up on the wiki: >> >> http://haskell.org/haskellwiki/New_monads/LazyWriterT > > Interesting. Writer is lazy but WriterT Identity isn't. I imagine that > both lazy and strict variants would be useful. Same for State/StateT.
Is there a compelling reason why I should want a "strict" version? Here, strictness only means that the pattern match on (,) may fail which implies that the pair is _|_ anyway. Strictness here does *not* mean that the stuff written out is evaluated strictly, only that the pair constructor is matched by a refutable pattern. In other words, is there an example where one would prefer (foo (a,b) = ...) over (foo ~(a,b) = ...) for reasons of time and space? If not, then I think it's a bug. Regards, apfelmus _______________________________________________ Haskell mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell
