Data.Binary
是很棒的。我只有一个问题。假设我有这样的数据类型:
import Data.Binary
data Ref = Ref {
refName :: String,
refRefs :: [(String, Ref)]
}
instance Binary Ref where
put a = put (refName a) >> put (refRefs a)
get = liftM2 Ref get get
很容易看出这是一个递归数据类型,因为 Haskell 是惰性的。由于 Haskell 作为一种语言既不使用引用也不使用指针,而是按原样呈现数据,我不确定如何保存。我有强烈的迹象表明,这种幼稚的指责将导致无限的字节串......
那么如何才能安全地保存这种类型呢?