以向后兼容的方式使用Cabal背包

Ale*_*lec 6 haskell cabal haskell-backpack

Backpack承诺让我们通过在签名上参数化包来解决字符串问题.我们的想法是,这将允许我们以向后兼容的方式改变生态系统:我们可以简单地弃用特定的实例,而不会改变依赖图.

我正在努力看到的是如何以向后兼容的方式使用Backpack.AFAICT,一个背包项目必须使用Cabal 2.0(以前版本的Cabal不支持.cabal文件中的所有新字段).这意味着我只能在支持GHC 8.2+的项目中使用背包.

这周围有什么黑客攻击吗?我正在寻找一种使用背包的方法:

  • GHC 8.2+的用户可以充分利用背包
  • 旧版本上的用户仍然可以编译和使用该项目(但是会遇到一些默认的签名实例)