
On Mon, Mar 23, 2015 at 4:35 AM, Sven Panne
2015-03-23 6:13 GMT+01:00 Mark Lentczner
: [...] 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