我正在编写一个开源补丁,用于使用字体库,或者更精确地说是在 C 语言中使用字体库的 Haskell 绑定(FTGL)。 我正在指向其中一个数据结构中的 Font 类型,该类型定义如下:
type Font = Ptr Font_Opaque
data Font_Opaque
很不幸,为了适应我正在修补的库的数据结构,这种类型需要成为Data的实例。Ptr已经是了,但Font_Opaque显然不是,所以编译器会报错。
由于它是不透明类型,我不确定如何继续下去...如何以更合理的方式实现Data Font_Opaque?有什么明智的方法吗?
deriving instance Data Font_Opaque
(首先启用StandaloneDeriving
扩展),然后(如果 GHC 可以派生出)使用-ddump-deriv
查看该实例。 - András Kovács