Proposal: Make StateT in mtl lazy
Ian Lynagh
igloo at earth.li
Wed Jan 31 19:22:08 EST 2007
On Wed, Jan 31, 2007 at 04:06:07PM +0000, Neil Mitchell wrote:
>
> >If we're going to have a strict StateT then it would make sense to have
> >a strict State too. Control.Monad.State.Strict perhaps? (and likewise
> >for the other mtl monads, where appropriate).
>
> For foldl we have foldl and foldl'.
Right, and I'd guess about a dozen other functions dotted around the
core libraries.
> Why not State and State' ?
(refering to type names, not module names)
This would also presumably give us
runState' evalState' ...
runStateT' evalStateT' ...
Existing examples of using .Strict/.Lazy modules are:
Control.Monad.ST.Lazy
Control.Monad.ST.Strict
Data.STRef.Lazy
Data.STRef.Strict
Data.ByteString
Data.ByteString.Lazy
Has anyone else got an opinion as to which is preferable?
Thanks
Ian
More information about the Libraries
mailing list