RefSerialize-0.4.0: Write to and read from ByteStrings maintaining internal memory references
Safe HaskellNone
LanguageHaskell98

Data.RefSerialize.Serialize

Synopsis

Documentation

type MFun = Char Source #

data ShowF Source #

Constructors

Expr ByteString 
Var Int 

Instances

Instances details
Show ShowF Source # 
Instance details

Defined in Data.RefSerialize.Serialize

Methods

showsPrec :: Int -> ShowF -> ShowS #

show :: ShowF -> String #

showList :: [ShowF] -> ShowS #

data Error Source #

Constructors

Error String 

data StatW Source #

Constructors

StatW (Context, [ShowF], ByteString) 

data STW a Source #

Constructors

STW (StatW -> (StatW, a)) 

Instances

Instances details
Applicative STW Source # 
Instance details

Defined in Data.RefSerialize.Serialize

Methods

pure :: a -> STW a #

(<*>) :: STW (a -> b) -> STW a -> STW b #

liftA2 :: (a -> b -> c) -> STW a -> STW b -> STW c #

(*>) :: STW a -> STW b -> STW b #

(<*) :: STW a -> STW b -> STW a #

Functor STW Source # 
Instance details

Defined in Data.RefSerialize.Serialize

Methods

fmap :: (a -> b) -> STW a -> STW b #

(<$) :: a -> STW b -> STW a #

Monad STW Source #

monadic serialization

Instance details

Defined in Data.RefSerialize.Serialize

Methods

(>>=) :: STW a -> (a -> STW b) -> STW b #

(>>) :: STW a -> STW b -> STW b #

return :: a -> STW a #

assocs :: (Ord a, HashTable h, Hashable a) => h RealWorld a b -> [(a, b)] Source #

insert :: (HashTable h, Hashable k) => k -> v -> h RealWorld k v -> h RealWorld k v Source #

delete :: (HashTable h, Hashable k) => k -> h RealWorld k v -> h RealWorld k v Source #

lookup :: (HashTable h, Hashable k) => k -> h RealWorld k v -> Maybe v Source #

toList :: (HashTable h, Hashable k) => h RealWorld k v -> [(k, v)] Source #

fromList :: (HashTable h, Hashable k) => [(k, v)] -> h RealWorld k v Source #

addrHash :: Context -> a -> IO (Either Int Int) Source #

return a unique hash identifier for an object the context assures that no StableName used in addrStr is garbage collected, so the hashes are constant and the correspondence address - string remain one to one as long as the context is not garbage collected. Left is returned if it is the first time that addHash is called for that variable

hasht :: a -> (Int, b) Source #

varName :: a -> [Char] Source #

two variables that point to the same address will have identical varname (derived from import System.Mem.StableName)varName:: a -> String . The stable names of during the serializing deserializing process are not deleted . This is assured by the pointers in the context, so the hash values remain and the comparison of varNames is correct.