Data.Binary
文档显示了手工编写实例。有办法解决这个问题吗?我在这里看到了另一个库,SerTH,它有一个(基于模板Haskell)派生机制,但链接到它似乎坏了。此外,如果您了解其他库,那么良好的性能对我们来说至关重要。
提前感谢!
参见http://hackage.haskell.org/packages/archive/binary/0.7.1.0/doc/html/Data-Binary.html#g:3
{-# LANGUAGE DeriveGeneric #-}
import Data.Binary
import GHC.Generics (Generic)
data Foo = Foo
deriving (Generic)
-- GHC will automatically fill out the instance
instance Binary Foo
Neil mitchell的派生包有一个模板haskell宏用于派生二进制实例。
既然你问了其他库:
谷类数据序列化库有谷类派生,它与GHC 7.2中新的泛型支持一起工作。与Template Haskell相比,这具有编译时速度优势(这些天我倾向于避免使用TH,因为它使编译更慢),并且比SYB和Uniplate等数据类型泛型方法具有运行时速度优势。
谷类非常类似于二进制,但使用严格的字节串;binary自2009年以来就没有更新过,而cereal有诸如IEEE-754浮点格式支持之类的细节,所以如果你想要派生,我看不出有任何理由不使用它而不是binary。