monad transformer library

Iavor Diatchki
Wed, 04 Jun 2003 13:15:37 -0700


Iavor Diatchki wrote:
>> Use of type synonyms, like
>>     type Reader r = R.ReaderT r Identity
>> is more economical, but will lead to more complex error messages.
> this is a good point and i will change that, unless anyone objects?

i am having 2nd thoughts about that.  using newtypes will require an 
alwful lot of "fake" instances making the libarary about 2 times bigger.
i tried to make a few errors and the error messages did not seem much 
worse with the "type" -- what happens is that "missing instances" are 
reported for the Identity monad, rather than the "Reader" monad.
this seems reasonable as methods usually just search for the first layer 
that implements a given "feature", until they hit the "base case". using 
newtype changes the base case from Identity to Reader, which in some 
case i think is perhaps more confusing.  any thoughts?