On Mon, Mar 23, 2015 at 4:35 AM, Sven Panne <svenpanne@gmail.com> wrote:
2015-03-23 6:13 GMT+01:00 Mark Lentczner <mark.lentczner@gmail.com>:
> [...] exceptions & multipart - needed by cgi - is exceptions now subsumed by
> something in transformers? [...]

Coincidentally, Edward Kmett pointed me to the exceptions package
while I was trying to generalize some of my packages from using plain
IO to MonadIO. Alas, the transformers package still doesn't subsume
the exceptions package, but IMHO it really should. Looking at the
import list of e.g. Control.Monad.Catch alone is already indicating
that. :-)

transformers remains rather rigidly locked into Haskell 98/2010.

mtl uses comparatively few extensions.

exceptions uses rank-3 types in the API, which is something we currently don't do in transformers or the mtl.
 
BTW: System.Console.Haskeline.MonadException has something
similar, but far less complete, too, but that's really a strange place
for such a feature. How did it end up there?

Haskeline makes a few weird choices. e.g. The opacity of the InputT type pretty much renders the library very difficult to use the moment you need to do something that the package doesn't anticipate, like work with InputT in a transformer and expect any instances to exist, handle exceptions around _it_ in turn, lift monad transformers over it yourself, etc. =( I have more code for working around this aspect of Haskeline than I do for working with it. But it appears, in this case, Judah needed it for working with InputT, and chose to implement that by lifting transformer-by-transformer, since internally InputT is made by wrapping up an mtl-based type in a newtype.

-Edward
 
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs