【问题标题】:Haskell Data instance for opaque data type不透明数据类型的 Haskell Data 实例
【发布时间】:2015-05-04 09:33:38
【问题描述】:

我正在编写一个开源补丁来使用字体库,或者更确切地说,将 haskell 绑定到 C (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 查看实例。

标签: haskell ffi


【解决方案1】:

正如 András Kovács 的评论所建议的,使用 StandaloneDeriving 语言扩展

{-# LANGUAGE StandaloneDeriving -#}

然后:

deriving instance Data Font_Opaque

做到了,至少在编译器方面是这样。如果这以任何方式影响程序,我会报告。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2013-07-12
    • 1970-01-01
    • 2016-08-12
    • 2021-12-09
    相关资源
    最近更新 更多