binary-shared-0.8.3: Sharing for the binary package
Safe HaskellSafe-Inferred
LanguageHaskell98

Data.Binary.Shared

Description

Binary serializing with sharing

Synopsis

Documentation

class (Typeable alpha, Ord alpha, Eq alpha, Show alpha) => BinaryShared alpha where Source #

A class for storing Binary instances with shared nodes. Cycles are not supported, cause put and get is a one path process.

Minimal complete definition

put, get

Methods

put :: alpha -> PutShared Source #

Encode a value in the Put monad.

putShared :: (alpha -> PutShared) -> alpha -> PutShared Source #

get :: GetShared alpha Source #

Decode a value in the Get monad

getShared :: GetShared alpha -> GetShared alpha Source #

Instances

Instances details
BinaryShared ByteString Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: ByteString -> PutShared Source #

putShared :: (ByteString -> PutShared) -> ByteString -> PutShared Source #

get :: GetShared ByteString Source #

getShared :: GetShared ByteString -> GetShared ByteString Source #

BinaryShared Integer Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: Integer -> PutShared Source #

putShared :: (Integer -> PutShared) -> Integer -> PutShared Source #

get :: GetShared Integer Source #

getShared :: GetShared Integer -> GetShared Integer Source #

BinaryShared Bool Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: Bool -> PutShared Source #

putShared :: (Bool -> PutShared) -> Bool -> PutShared Source #

get :: GetShared Bool Source #

getShared :: GetShared Bool -> GetShared Bool Source #

BinaryShared Char Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: Char -> PutShared Source #

putShared :: (Char -> PutShared) -> Char -> PutShared Source #

get :: GetShared Char Source #

getShared :: GetShared Char -> GetShared Char Source #

BinaryShared Int Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: Int -> PutShared Source #

putShared :: (Int -> PutShared) -> Int -> PutShared Source #

get :: GetShared Int Source #

getShared :: GetShared Int -> GetShared Int Source #

BinaryShared a => BinaryShared (Set a) Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: Set a -> PutShared Source #

putShared :: (Set a -> PutShared) -> Set a -> PutShared Source #

get :: GetShared (Set a) Source #

getShared :: GetShared (Set a) -> GetShared (Set a) Source #

BinaryShared a => BinaryShared (Maybe a) Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: Maybe a -> PutShared Source #

putShared :: (Maybe a -> PutShared) -> Maybe a -> PutShared Source #

get :: GetShared (Maybe a) Source #

getShared :: GetShared (Maybe a) -> GetShared (Maybe a) Source #

BinaryShared a => BinaryShared [a] Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: [a] -> PutShared Source #

putShared :: ([a] -> PutShared) -> [a] -> PutShared Source #

get :: GetShared [a] Source #

getShared :: GetShared [a] -> GetShared [a] Source #

(BinaryShared k, BinaryShared e) => BinaryShared (Map k e) Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: Map k e -> PutShared Source #

putShared :: (Map k e -> PutShared) -> Map k e -> PutShared Source #

get :: GetShared (Map k e) Source #

getShared :: GetShared (Map k e) -> GetShared (Map k e) Source #

(BinaryShared a, BinaryShared b) => BinaryShared (a, b) Source # 
Instance details

Defined in Data.Binary.Shared

Methods

put :: (a, b) -> PutShared Source #

putShared :: ((a, b) -> PutShared) -> (a, b) -> PutShared Source #

get :: GetShared (a, b) Source #

getShared :: GetShared (a, b) -> GetShared (a, b) Source #