2015-05-04 77 views
14

我正在寫一個開源補丁來使用字體庫,或者更確切地說haskell綁定到C(FTGL)中的字體庫。 我指向字體類型的數據結構,它被定義爲一種如下:Haskell數據實例爲不透明數據類型

type Font = Ptr Font_Opaque 
data Font_Opaque 

不幸的是,裝配到我修補的庫的數據結構,這種類型的需要是Data的實例。 Ptr已經是了,但Font_Opaque顯然不是,所以編譯器會抱怨。

由於這是一個不透明的類型,我不知道如何進行...如何實施數據Font_Opaque或多或少明智的方式?有沒有一個明智的方法?

+2

您可以嘗試'導出實例Data Font_Opaque'(首先啓用'StandaloneDeriving'擴展),然後(如果GHC可以派生)使用'-ddump-deriv'查看實例。 –

回答

3

正如安德拉斯·科瓦克斯的意見建議,使用StandaloneDeriving語言擴展

{-# LANGUAGE StandaloneDeriving -#} 

然後:

deriving instance Data Font_Opaque 

的伎倆,至少在編譯器而言。如果以任何方式影響程序,我會報告回來。謝謝!