
hello, 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? bye iavor