Haskell 如何拒绝使用特定ghc版本的建筑

Haskell 如何拒绝使用特定ghc版本的建筑,haskell,Haskell,我的一个阴谋集团图书馆被毁了。我目前在源代码中有一个变通方法,但是由于这个GHC错误在7.8.3中已经修复,我计划很快删除这个变通方法。我不知道如何处理这种情况,使图书馆拒绝在GHC 7.8.0-7.8.2的基础上构建。理想情况下,我希望用户收到一条漂亮的错误消息(“GHC 7.8.0-7.8.2有一个bug阻止该库正确构建,请使用7.8.3+”) 也许是阴谋集团的旗帜?还是一些CPP魔术?我认为修复是在base中,也许我可以在此基础上设置条件,尽管这看起来很棘手或不可能 或者我可以将这个解决方

我的一个阴谋集团图书馆被毁了。我目前在源代码中有一个变通方法,但是由于这个GHC错误在7.8.3中已经修复,我计划很快删除这个变通方法。我不知道如何处理这种情况,使图书馆拒绝在GHC 7.8.0-7.8.2的基础上构建。理想情况下,我希望用户收到一条漂亮的错误消息(“GHC 7.8.0-7.8.2有一个bug阻止该库正确构建,请使用7.8.3+”)

也许是阴谋集团的旗帜?还是一些CPP魔术?我认为修复是在
base
中,也许我可以在此基础上设置条件,尽管这看起来很棘手或不可能


或者我可以将这个解决方案进行很长一段时间,直到这个问题完全没有意义为止,但由于大多数早期采用者都会使用7.8.2和更早版本,我认为在适当的警告下放弃支持应该不是问题。

GHC 7.8.3将
base
的版本号从4.7.0.0增加(由以前的7.8版本使用)到4.7.0.1。但是,您可以使用
build dependens
cabal字段来排除该版本,例如,通过添加约束
base 4.7.0.0

,此解决方案不会向您提供自定义错误消息。