我是一个关于hackage的软件包的维护者,lrucache.我最近收到了一个功能请求,用于添加Binary和NFData的实例.这两个都是有用的东西,原则上我对这些事情没有问题.
但是,它们都引入了新的软件包依赖关系,我希望尽可能地减少软件包的依赖列表.有没有一个理智的方法来处理这个?可能有二十多个不同的包提供了有用的类型类,lrucache可以实现数据结构,并获得一些好处.
显然,将它们全部添加为依赖关系是非启动的.但还有什么可以做的?
我可以添加lrucache.cabal的标志,这将使编译各种实例.在使依赖列表最少的情况下,除非你想要,否则这样做是有效的.但是在现实世界中是可怕的,因为您无法在构建依赖部分中指定构建标志.因此,您可以依赖具有特定标志的包,但不能指定依赖关系.这很快就减少到接近无用的程度.
我可以创建一堆孤儿实例包.这具有允许在构建依赖部分中指定对这些实例的依赖性的优点.它的主要缺点是添加了大量额外的软件包来进行黑客攻击,并需要将它们保持为单独的软件包.
我还可以做些什么?什么是正确的事情?