1

我正在更新我的ReadArgs 包Arguable我有一个为 Data.Text 和FileSystem.Path.FilePath添加实例的请求。前者没什么大不了的,因为它在base包装中,但后者需要system-filepath

所以我可以发布一个ReadArgs-ext包,塞满孤儿实例,或者我可以ReadArgs用一个额外的外部依赖来更新这个包。哪个选项更有意义?

4

1 回答 1

3

我通常的经验法则是倾向于为 Haskell 平台中的包添加实例,但不涉及较少可移植的元素,例如图形。这涵盖了filepathtext。由于您已经在与外部世界处理命令行参数,因此这些都不是特别令人震惊的添加。

孤儿会导致非常可怕的问题。

我没有在 95% 的包中使用它们,而且我会竭尽全力避免使用它们的包。

在这一点上,我遇到的两个例外是一些丢失的幺半群reducers和一个装满vector-instances我捡起的包,因为我不愿意让我的整个包层次结构都依赖于vector,将所有内容从 . 降级SafeTrustworthy.

我发现当我想添加一个孤立实例时,我通常可以通过提供某种类似WrappedMonadnewtype 的包装器来提升或降低另一个类来解决它。

于 2012-09-13T08:07:57.080 回答