哈斯克尔FFI馆际依存关系

我在http://hackage.haskell.org/package/augeas上维护augeas FFI库

最近,augeas添加了一个aug_to_xml方法,其中包含一个来自libmxl2的类型为xmlNode的参数。 它看起来像libxml是libxml2的FFI库,但它并没有在一段时间内更新,并且它没有看到Debian的打包,所以我很犹豫是否将它作为依赖添加到augeas FFI库中。

所以我的问题是,当我为这个函数添加FFI支持时,将依赖项添加到libxml会更好吗,这可能会导致稍后打包问题,或者根据FFI菜谱使用类似不透明类型的东西会更好吗?所以没有馆际依赖?

如果我采用不透明类型的方法,并且用户希望自己使用libxml,他们是否可以将我的类型转换为Text.XML.LibXML.Node?


如果你想包含这个函数,一个不透明类型可能是最好的路线,但是我会怀疑包含一个函数,这个函数只能在不安全的强制下适用于另一个类型的类型(这确实是可能的,但是会依赖关于libxml绑定的Node的内部表示无法更改 - 有风险)。

我建议不要添加该功能; 如果有人想使用它,他们可以很容易地自行导入它,如果你的绑定是直接的,那么他们可能很容易将它与绑定的类型一起使用。 当然,如果它可能是常用的,你可以很容易地将它自己捆绑成一个包,虽然我非常怀疑一个包是在2008年最后更新的,甚至没有建立在GHC 6.12之上的版本将会得到很多用途。

所以,我只是从你的绑定中省略函数,或者如果你真的想包含它,就使用不透明类型。

链接地址: http://www.djcxy.com/p/61175.html

上一篇: Haskell FFI interlibrary dependencies

下一篇: Union and Type** with FFI in Haskell?