
All I am saying is that these various *compat packages manage to encapsulate the ifdefs to some degree. Here's the record of my struggle [1]. Then came Edward K. and told me to use transformers-compat [2]. Then Adam B. chimed in suggesting mtl-compat [3]. That's it. All my IFDEFs related to this topic were gone. I looked at base-compat [4] and it's very interesting. The big question is: **Why cannot normal base be written the same way as base-compat? ** It would then automatically provide compatibility across all GHC versions. Michał [1] https://www.reddit.com/r/haskell/comments/3gqqu8/depending_on_both_mtl2131_f... [2] https://www.reddit.com/r/haskell/comments/3gqqu8/depending_on_both_mtl2131_f... [3] https://www.reddit.com/r/haskell/comments/3gqqu8/depending_on_both_mtl2131_f... [4] https://hackage.haskell.org/package/base-compat On Mon, Oct 5, 2015 at 6:18 PM, Bryan Richter wrote:
On Mon, Oct 5, 2015 at 06:43-0700, mantkiew wrote:
Well, there are the *compat packages:
Base-compat Transformers-compat Mtl-compat
Etc. They do centralize the ifdefs and give you compatibility with GHC 7.*. I recently adopted the last two ones and they work like a charm. I am yet to adopt base-compat, so I don't know what the experience is with it.
Hang on a moment, are you saying that all the people writing to argue that these changes would require them to write dozens more #ifdef's actually don't have to write any at all? I never knew what the *-compat packages were all about. If that's what they're designed to do, I have a feeling they have not gotten *nearly* enough exposure.
[Apologies for possible cross-posting; this thread jumped into my inbox from I-know-not-where and already has half a dozen CCs attached.]