-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Sharing for the binary package -- -- I had problems with the size of the allocated heap space after -- serializing and loading data with the binary package. The reason was -- that binary does not support sharing of identical elements, so I came -- up with the generic solution in this package. @package binary-shared @version 0.8.1 -- | Binary serializing with sharing module Data.Binary.Shared -- | A class for storing Binary instances with shared nodes. Cycles are not -- supported, cause put and get is a one path process. class (Typeable alpha, Ord alpha, Eq alpha, Show alpha) => BinaryShared alpha put :: BinaryShared alpha => alpha -> PutShared putShared :: BinaryShared alpha => (alpha -> PutShared) -> alpha -> PutShared get :: BinaryShared alpha => GetShared alpha getShared :: BinaryShared alpha => GetShared alpha -> GetShared alpha encodeFileSer :: BinaryShared a => FilePath -> a -> IO () encodeSer :: BinaryShared a => a -> ByteString decodeSer :: BinaryShared alpha => ByteString -> alpha instance BinaryShared ByteString instance BinaryShared Integer instance BinaryShared Int instance BinaryShared Char instance BinaryShared Bool instance (BinaryShared k, BinaryShared e) => BinaryShared (Map k e) instance BinaryShared a => BinaryShared (Set a) instance (BinaryShared a, BinaryShared b) => BinaryShared (a, b) instance BinaryShared a => BinaryShared (Maybe a) instance BinaryShared a => BinaryShared [a] instance Ord Object instance Eq Object