删除类型类实例和包版本策略

时间:2015-08-19 18:28:08

标签: haskell

been asked to drop my dependency on system-filepath

我的包定义了类型类Arguable,并为Filesystem.Path的{​​{1}}类型定义了一个实例。没有FilePath表示没有system-filepath表示没有Filesystem.Path,因此通过删除此依赖关系,我将更改我的API以不再提供FilePath实例。

如何与PVP对齐?这是一个主要的版本变化吗?

1 个答案:

答案 0 :(得分:2)

是的,这是一个重大的版本更改。关于A.B.C版本号的Haskell wiki page on the PVP州(相关短语加粗):

  
      
  1. 如果删除了任何实体,或者更改了任何实体的类型或数据类型或类的定义,或者添加了孤立实例或删除了任何实例,那么新的AB必须更大比以前的AB请注意,修改导入或依赖于另一个包的较新版本可能会导致导出额外的孤立实例,从而强制进行主要版本更改。
  2.   
  3. 否则,如果只有新的绑定,类型,类,非孤立实例或模块(但见下文)被添加到接口,则AB可能保持不变,但新C必须大于旧C.注意修改导入或依赖于另一个包的较新版本可能会导致额外的非孤立实例被导出,从而强制进行次要版本更改。
  4.   
  5. 否则,A.B.C可能保持不变(其他版本组件可能会更改)。
  6.