cereal-plus-0.4.2: An extended serialization library on top of "cereal"

Safe HaskellNone
LanguageHaskell2010

CerealPlus.Serializable

Synopsis

Documentation

class Serializable m a where Source #

Support for serialization of a data type in a monadic context (e.g., IO, ST, STM, Identity), meaning that this can be used to provide serialization support for mutable data.

To use it in a pure context, refer to Identity monad.

Methods

serialize :: (Monad m, Applicative m) => a -> Serialize m () Source #

deserialize :: (Monad m, Applicative m) => Deserialize m a Source #

serialize :: (Applicative m, Monad m, Generic a, SerializableRep (Rep a) m) => a -> Serialize m () Source #

deserialize :: (Applicative m, Monad m, Generic a, SerializableRep (Rep a) m) => Deserialize m a Source #

Instances

Serializable m Any Source # 
Serializable m All Source # 
Serializable m Ordering Source # 
Serializable m Bool Source # 
Serializable m IntSet Source # 
Serializable m ByteString Source # 
Serializable m () Source # 
Serializable m Word64 Source # 
Serializable m Word32 Source # 
Serializable m Word16 Source # 
Serializable m Word8 Source # 
Serializable m Word Source # 
Serializable m Integer Source # 
Serializable m Int64 Source # 
Serializable m Int32 Source # 
Serializable m Int16 Source # 
Serializable m Int8 Source # 
Serializable m Int Source # 
Serializable m Float Source # 
Serializable m Double Source # 
Serializable m Char Source # 
Serializable m AbsoluteTime Source # 
Serializable m ZonedTime Source # 
Serializable m LocalTime Source # 
Serializable m TimeZone Source # 
Serializable m TimeOfDay Source # 
Serializable m NominalDiffTime Source # 
Serializable m UTCTime Source # 
Serializable m UniversalTime Source # 
Serializable m DiffTime Source # 
Serializable m Day Source # 
Serializable m Text Source # 
Serializable IO a => Serializable IO (TVar a) Source # 
Serializable IO a => Serializable IO (IORef a) Source # 
Serializable IO a => Serializable IO (MVar a) Source # 
Serializable m a => Serializable m (Vector a) Source # 
(Serializable m a, Hashable a, Eq a) => Serializable m (HashSet a) Source # 
Serializable m a => Serializable m (IntMap a) Source # 
(Serializable m a, Ord a) => Serializable m (Set a) Source # 
Serializable m a => Serializable m (Identity a) Source # 
Serializable m a => Serializable m (Seq a) Source # 
Serializable m a => Serializable m [a] Source # 

Methods

serialize :: [a] -> Serialize m () Source #

deserialize :: Deserialize m [a] Source #

Serializable m a => Serializable m (Maybe a) Source # 
Serializable m a => Serializable m (Tree a) Source # 
(Serializable m a, Integral a) => Serializable m (Ratio a) Source # 
Serializable m a => Serializable m (Last a) Source # 
Serializable m a => Serializable m (First a) Source # 
Serializable m a => Serializable m (Product a) Source # 
Serializable m a => Serializable m (Sum a) Source # 
Serializable m a => Serializable m (Dual a) Source # 
(HasResolution a, Fractional (Fixed a)) => Serializable m (Fixed a) Source # 
Serializable STM a => Serializable STM (TVar a) Source # 
(Serializable m e, Serializable m i, IArray UArray e, Ix i) => Serializable m (UArray i e) Source # 
(Serializable m e, Serializable m i, Ix i) => Serializable m (Array i e) Source # 
(Serializable m a, Serializable m b, Hashable a, Eq a) => Serializable m (HashMap a b) Source # 
(Serializable m a, Serializable m b, Ord a) => Serializable m (Map a b) Source # 

Methods

serialize :: Map a b -> Serialize m () Source #

deserialize :: Deserialize m (Map a b) Source #

(Serializable m a, Serializable m b) => Serializable m (a, b) Source # 

Methods

serialize :: (a, b) -> Serialize m () Source #

deserialize :: Deserialize m (a, b) Source #

(Serializable m a, Serializable m b) => Serializable m (Either a b) Source # 
(Serializable (ST RealWorld) a, Serializable (ST RealWorld) b, Hashable a, Eq a) => Serializable IO (HashTable RealWorld a b) Source # 
(Serializable (ST RealWorld) a, Serializable (ST RealWorld) b, Hashable a, Eq a) => Serializable IO (HashTable RealWorld a b) Source # 
(Serializable (ST RealWorld) a, Serializable (ST RealWorld) b, Hashable a, Eq a) => Serializable IO (HashTable RealWorld a b) Source # 
(Serializable m a, Serializable m b, Serializable m c) => Serializable m (a, b, c) Source # 

Methods

serialize :: (a, b, c) -> Serialize m () Source #

deserialize :: Deserialize m (a, b, c) Source #

(Serializable m a, Serializable m b, Serializable m c, Serializable m d) => Serializable m (a, b, c, d) Source # 

Methods

serialize :: (a, b, c, d) -> Serialize m () Source #

deserialize :: Deserialize m (a, b, c, d) Source #

(Serializable m a, Serializable m b, Serializable m c, Serializable m d, Serializable m e) => Serializable m (a, b, c, d, e) Source # 

Methods

serialize :: (a, b, c, d, e) -> Serialize m () Source #

deserialize :: Deserialize m (a, b, c, d, e) Source #

(Serializable (ST s) a, Serializable (ST s) b, Hashable a, Eq a) => Serializable (ST s) (HashTable s a b) Source # 

Methods

serialize :: HashTable s a b -> Serialize (ST s) () Source #

deserialize :: Deserialize (ST s) (HashTable s a b) Source #

(Serializable (ST s) a, Serializable (ST s) b, Hashable a, Eq a) => Serializable (ST s) (HashTable s a b) Source # 

Methods

serialize :: HashTable s a b -> Serialize (ST s) () Source #

deserialize :: Deserialize (ST s) (HashTable s a b) Source #

(Serializable (ST s) a, Serializable (ST s) b, Hashable a, Eq a) => Serializable (ST s) (HashTable s a b) Source # 

Methods

serialize :: HashTable s a b -> Serialize (ST s) () Source #

deserialize :: Deserialize (ST s) (HashTable s a b) Source #