
On Thu, Mar 26, 2015 at 11:40 AM Erik Hesselink
On Mon, Mar 23, 2015 at 6:44 AM, Mark Lentczner
wrote: 7. Cabal incompatible API change In particular, the api that a custom Setup.hs uses. Distribution.Simple.UserHooks changed the type of a hook. It should not, it should have added another to do what it wanted. The poblem is you can't use CPP in Setup.hs. And so now anyone using the testHook hook is in a pickle: Your Setup.hs can't work in both 7.10 and 7.8!
It can, but it's a bit tricky. When this happened before, people used a type class with two instances, where one of them filled in a default argument, IIRC. I can't find the exact code now, perhaps others remember this better.
I wrote a blog post in June of last year[1] and was told that some of those tricks are used to Cabal files. I also don't have a link to a real example, but the blog post may help. Michael [1] http://www.yesodweb.com/blog/2014/06/evil-conditional-compile