On 01/18/2012 01:52 AM, Brandon Allbery wrote:
On Tue, Jan 17, 2012 at 06:29, Mikhail Vorozhtsov
<[email protected] <mailto:[email protected]>> wrote:
I wouldn't be too optimistic about convincing GHC HQ. Even making
Applicative a superclass of Monad can make Haskell98 nazis come
after you in ninja suits.
What?! The only significant complaint I've seen here is that the
necessary language support for doing so without breaking more or less
every Haskell program currently in existence is difficult to achieve.
This is a /big/ exaggeration. What libraries exactly are going to be
broken? Bytestring/Text (and all other data-structures-related libraries
for that matter)? I don't think so. Network? Wouldn't be surprised if it
goes without even a single patch. (Atto)Parsec/Binary/Cereal/*-Builder
or Enumerator? A few type signatures (mainly contexts) and/or instances
would need to be changed. Transformers? Some instances again. MTL? Looks
surprisingly good.
I think with some coordinated effort we could switch the core libraries
withing a week. On the client side of things I expect the change to go
unnoticed by most people: by now virtually every custom monad has an
Applicative instance. Personally, I wouldn't mind being hit by this
hierarchy transformation, it is totally worth an hour of adjusting type
contexts in my code (I'm currently maintaining ~17KLOC and I think I
would need to touch only a handful of places).
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe