【发布时间】:2017-11-02 16:34:59
【问题描述】:
我注意到我可以通过像这样添加 CPP 条件来获得与 base 的向后兼容性:
moo :: Moo
moo = Moo
{ happyMoo = Sound "moo"
#if MIN_VERSION_base(4,9,1)
, upgradedMoo = Sound "moo"
#endif
, sadMoo = Sound "moo"
}
但是当我指定包级依赖项时(即:使用类似 #if MIN_VERSION_optparse-applicative(0,13,0) 的东西)时出现错误,我很难找到有关此 GHC 功能的文档。
我想知道是否存在类似 MIN_VERSION_optparse-applicative 的东西,如果不存在,hackage 维护者如何保持代码向后兼容?
【问题讨论】:
-
MIN_VERSION_optparse-applicative是无效的 CPP 标识符。试试MIN_VERSION_optparse_applicative。 -
ahhhh,我试过了,但这次成功了。看起来我之前也使用了四个版本号,其中宏必须采用三个数字。
标签: haskell compatibility backwards-compatibility