是否有模板Haskell /数据派生机制.二进制(还是朋友?)



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。

最新更新