Proposal: Make mtl lazier
igloo at earth.li
Wed Jan 31 07:53:46 EST 2007
On Tue, Jan 30, 2007 at 05:07:18PM +0000, Chris Kuklewicz wrote:
> I agree that the change improves the consistence of semantics.
> You should amend the proposal to also explain how to restore the previous
> strictness using 'seq'.
I'm not sure what you mean?
> And if StateT is to be fixed, then the same fix should be applied to WriterT, as
> shown in http://haskell.org/haskellwiki/New_monads/LazyWriterT
> And the same fix looks like it should be applied to RWST.
> ErrorT I believe is supposed to be Strict, so it can stop when a (Left _) is found.
Hmm, now I look closer there are a number of other places that look like
they could benefit from a ~. I've attached a new patch and unified diff
of them all to the proposal
and changed the description to match its increased scope.
The changes only affect transformers except for:
listens :: (MonadWriter w m) => (w -> b) -> m a -> m (a, b)
listens f m = do
- (a, w) <- listen m
+ ~(a, w) <- listen m
return (a, f w)
More information about the Libraries