On Tue, Sep 30, 2008 at 1:20 PM, Don Stewart
<dons@galois.com> wrote:
noteed:
> Hi,
>
> I'd like to know, now that time got by a bit, what the writers of the
> X monad think about the use of the ReaderT/WriterT/IO brought to them
> (to isolate Configuration data and dynamic data and glue them together
> with IO). Are you happy of it, did it make things easier or not, would
> you do it again ?
It made the structuring and invariants between runtime data, and
configuration data clean and precise. Yes, A+++ would buy again.
I can add to this, saying that I used WriterT/ReaderT and Unique in a CodeGen monad I created for a compiler I'm writing and this approach of stacking monads (well, really transformers) works amazingly well. Many of the existing monads abstractly handle a particular task very well. When you combine this with generalized newtype deriving it's not just code reuse, it's also code specialization. You quickly glue together existing functionality that works but expose it with the API that meets your problem domain. I'd say this is not unlike the way people glue together unix tools on the command line. This is RAD in Haskell.
I agree with Don, I would buy this again. In fact, I've already placed an order for use in future projects.
Jason