
On Mon, Mar 30, 2009 at 12:40 PM, Jeremy Shaw
At Mon, 30 Mar 2009 20:29:14 +0100, Andrew Coppin wrote:
Maybe I'm just being blind here, but I don't see a monad transformer (or even a monad) in the standard libraries for producing "unique" values. Have I missed something?
There is Data.Unique
http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data-Unique.html
Not sure if that is suitable for your needs. Obviously it doesn't do everything that one might desire.
Related, I don't see a monad for gradually consuming input. We've got the Reader monad, but that appears to just give you global access to a single monolithic value.
(I guess ultimately you can build all these specialised monads out of the general State monad if you want. I'm just surprised they're not already defined somewhere...)
I have written a Consumer monad, but I never uploaded it to hackage, because, as you say, it seemed like it should just be a specialized version of the State monad?.
It's here:
http://www.n-heptane.com/nhlab/repos/haskell-consumer/
If people think it is actually valuable, I'll upload it. I would be interested in hearing some debate about what I wrote, versus just implementing it on top of the State monad, if anyone has something to say about that.
Since the Reader and Writer monads could be implemented as specialized version of State, maybe that is an argument for implementing Consumer as I have? (Also, I get the feeling this Consumer monad already exists somewhere else?).
One could argue that we don't need implementations any Monad, with perhaps the exception of IO :-) Dave
- jeremy _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe