编写实例而不强制依赖

时间:2016-01-31 23:59:51

标签: haskell

有没有办法在不强制依赖的情况下编写实例。假设我正在创建包B,它不依赖于包A,包A也不依赖于包B。但是,包B包含数据类型,而包A包含一个类,将B作为A的实例非常有用。

但除了那种类型/实例关系之外,AB是完全独立的,使用一个没有另一个是完全合理的。

有没有办法在不使用孤立实例的情况下设置包并定义这样的实例?

1 个答案:

答案 0 :(得分:3)

你的选择是让一个包依赖另一个;创建一个只包含类型的第三个包,让两个包依赖于它;创建一个依赖于两个包并具有孤立实例的第三个包。

如果您不控制这两个软件包,那么第一个和第三个选项是唯一可用的选项(或者无法让开发人员相信您无法控制的软件包以进行必要的更改)

第三个选项需要孤立实例,但比普通的孤立实例稍差,因为它将是"权威的"选择。第三个选项是fairly common