-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Common API for serialization libraries
--   
--   This package provides a common API for serialization libraries like
--   <a>binary</a> and <a>cereal</a>.
@package data-serializer
@version 0.3


-- | Serialization monoid and serializable types.
module Data.Serializer

-- | Serialization monoid.
class (Semigroup s, Monoid s) => Serializer s where endian _ = LittleEndian word16 = putIn (endian (Proxy :: Proxy s)) word32 = putIn (endian (Proxy :: Proxy s)) word64 = putIn (endian (Proxy :: Proxy s)) word16L w = word8 (fromIntegral w) <> word8 (fromIntegral (shiftR w 8)) word16B = word16L . swapEndian word32L w = word8 (fromIntegral w) <> word8 (fromIntegral (shiftR w 8)) <> word8 (fromIntegral (shiftR w 16)) <> word8 (fromIntegral (shiftR w 24)) word32B = word32L . swapEndian word64L w = word8 (fromIntegral w) <> word8 (fromIntegral (shiftR w 8)) <> word8 (fromIntegral (shiftR w 16)) <> word8 (fromIntegral (shiftR w 24)) <> word8 (fromIntegral (shiftR w 32)) <> word8 (fromIntegral (shiftR w 40)) <> word8 (fromIntegral (shiftR w 48)) <> word8 (fromIntegral (shiftR w 56)) word64B = word64L . swapEndian byteString = mconcat . fmap word8 . unpack shortByteString = mconcat . fmap word8 . unpack lazyByteString = mconcat . fmap byteString . toChunks builder = lazyByteString . toLazyByteString

-- | Default byte order of the serializer.
endian :: Serializer s => Proxy s -> Endian

-- | Serialize a byte. <a>word8</a> <i>x</i> = <a>byteString</a>
--   (<a>singleton</a> <i>x</i>)
word8 :: Serializer s => Word8 -> s

-- | Serialize an unsigned 16-bit integer in the default byte order.
word16 :: Serializer s => Word16 -> s

-- | Serialize an unsigned 32-bit integer in the default byte order.
word32 :: Serializer s => Word32 -> s

-- | Serialize an unsigned 64-bit integer in the default byte order.
word64 :: Serializer s => Word64 -> s

-- | Serialize an unsigned 16-bit integer in little endian.
word16L :: Serializer s => Word16 -> s

-- | Serialize an unsigned 16-bit integer in big endian.
word16B :: Serializer s => Word16 -> s

-- | Serialize an unsigned 32-bit integer in little endian.
word32L :: Serializer s => Word32 -> s

-- | Serialize an unsigned 32-bit integer in big endian.
word32B :: Serializer s => Word32 -> s

-- | Serialize an unsigned 64-bit integer in little endian.
word64L :: Serializer s => Word64 -> s

-- | Serialize an unsigned 64-bit integer in big endian.
word64B :: Serializer s => Word64 -> s

-- | Serialize a <a>ByteString</a>. Must be a monoid homomorphism.
byteString :: Serializer s => ByteString -> s

-- | Serialize a <a>ShortByteString</a>. Must be a monoid homomorphism.
shortByteString :: Serializer s => ShortByteString -> s

-- | Serialize a lazy <a>ByteString</a>. Must be a monoid homomorphism.
lazyByteString :: Serializer s => ByteString -> s

-- | Serialize a <a>Builder</a>. Must be a monoid homomorphism.
builder :: Serializer s => Builder -> s

-- | A wrapper around the <a>Put</a> monoid (to avoid orphan instances).
newtype BinarySerializer
BinarySerializer :: Put -> BinarySerializer
[binarySerializer] :: BinarySerializer -> Put

-- | A wrapper around the <a>Put</a> monoid (to avoid orphan instances).
newtype CerealSerializer
CerealSerializer :: Put -> CerealSerializer
[cerealSerializer] :: CerealSerializer -> Put

-- | Serialize an usigned 16-bit integer in host byte order.
word16H :: Serializer s => Word16 -> s

-- | Serialize an unsigned 32-bit integer in host byte order.
word32H :: Serializer s => Word32 -> s

-- | Serialize an unsigned 64-bit integer in host byte order.
word64H :: Serializer s => Word64 -> s

-- | Serialize an unsigned native-sized integer in serializer default byte
--   order.
word :: Serializer s => Word -> s

-- | Serialize an unsigned native-sized integer in little endian.
wordL :: Serializer s => Word -> s

-- | Serialize an unsigned native-sized integer in big endian.
wordB :: Serializer s => Word -> s

-- | Serialize an unsigned native-sized integer in host byte order.
wordH :: Serializer s => Word -> s

-- | Serialize a signed 8-bit integer.
int8 :: Serializer s => Int8 -> s

-- | Serialize a signed 16-bit integer in serializer default byte order.
int16 :: Serializer s => Int16 -> s

-- | Serialize a signed 16-bit integer in little endian.
int16L :: Serializer s => Int16 -> s

-- | Serialize a signed 16-bit integer in big endian.
int16B :: Serializer s => Int16 -> s

-- | Serialize a signed 16-bit integer in host byte order.
int16H :: Serializer s => Int16 -> s

-- | Serialize a signed 32-bit integer in serializer default byte order.
int32 :: Serializer s => Int32 -> s

-- | Serialize a signed 32-bit integer in little endian.
int32L :: Serializer s => Int32 -> s

-- | Serialize a signed 32-bit integer in big endian.
int32B :: Serializer s => Int32 -> s

-- | Serialize a signed 32-bit integer in host byte order.
int32H :: Serializer s => Int32 -> s

-- | Serialize a signed 64-bit integer in serializer default byte order.
int64 :: Serializer s => Int64 -> s

-- | Serialize a signed 64-bit integer in little endian.
int64L :: Serializer s => Int64 -> s

-- | Serialize a signed 64-bit integer in big endian.
int64B :: Serializer s => Int64 -> s

-- | Serialize a signed 64-bit integer in host byte order.
int64H :: Serializer s => Int64 -> s

-- | Serialize a signed native-sized integer in serializer default byte
--   order.
int :: Serializer s => Int -> s

-- | Serialize a signed native-sized integer in little endian.
intL :: Serializer s => Int -> s

-- | Serialize a signed native-sized integer in big endian.
intB :: Serializer s => Int64 -> s

-- | Serialize a signed native-sized integer in host byte order.
intH :: Serializer s => Int -> s

-- | Serializer wrapper with little endian default byte order.
newtype LittleEndianSerializer s
LittleEndianSerializer :: s -> LittleEndianSerializer s
[serializeL] :: LittleEndianSerializer s -> s

-- | Serializer wrapper with big endian default byte order.
newtype BigEndianSerializer s
BigEndianSerializer :: s -> BigEndianSerializer s
[serializeB] :: BigEndianSerializer s -> s

-- | Force the default byte order.
serializeIn :: Serializer s => Endian -> (forall s'. (Serializer s') => s') -> s

-- | Force the default byte order to be the host byte order.
serializeH :: Serializer s => (forall s'. (Serializer s') => s') -> s

-- | Serializable type. <a>put</a> must work under assumption that it will
--   be followed by more output.
class Serializable α
put :: (Serializable α, Serializer s) => α -> s

-- | Serialize a value using the provided default byte order.
putIn :: (Serializer s, Serializable α) => Endian -> α -> s

-- | Serialize a value using little endian as the default byte order.
putL :: (Serializer s, Serializable α) => α -> s

-- | Serialize a value using big endian as the default byte order.
putB :: (Serializer s, Serializable α) => α -> s

-- | Serialize a value using host byte order as the default byte order.
putH :: (Serializer s, Serializable α) => α -> s

-- | Types with fixed serialized size.
class Serializable α => SizedSerializable α

-- | Serialized size in bytes.
size :: SizedSerializable α => Proxy α -> Int

-- | Serializable type. <a>putRest</a> must work under assumption that it
--   will not be followed by any more output.
class RestSerializable α
putRest :: (RestSerializable α, Serializer s) => α -> s
instance GHC.Base.Monoid s => GHC.Base.Monoid (Data.Serializer.BigEndianSerializer s)
instance Data.Semigroup.Semigroup s => Data.Semigroup.Semigroup (Data.Serializer.BigEndianSerializer s)
instance GHC.Generics.Generic (Data.Serializer.BigEndianSerializer s)
instance Data.Data.Data s => Data.Data.Data (Data.Serializer.BigEndianSerializer s)
instance GHC.Base.Monoid s => GHC.Base.Monoid (Data.Serializer.LittleEndianSerializer s)
instance Data.Semigroup.Semigroup s => Data.Semigroup.Semigroup (Data.Serializer.LittleEndianSerializer s)
instance GHC.Generics.Generic (Data.Serializer.LittleEndianSerializer s)
instance Data.Data.Data s => Data.Data.Data (Data.Serializer.LittleEndianSerializer s)
instance GHC.Base.Monoid Data.Serializer.CerealSerializer
instance GHC.Generics.Generic Data.Serializer.CerealSerializer
instance GHC.Base.Monoid Data.Serializer.BinarySerializer
instance Data.Semigroup.Semigroup Data.Serializer.BinarySerializer
instance GHC.Generics.Generic Data.Serializer.BinarySerializer
instance Data.Serializer.Serializer [GHC.Word.Word8]
instance Data.Serializer.Serializer Data.ByteString.Builder.Internal.Builder
instance Data.Serializer.Serializer Data.Binary.Put.Put
instance Data.Serializer.Serializer Data.Serializer.BinarySerializer
instance Data.Semigroup.Semigroup Data.Serializer.CerealSerializer
instance Data.Serializer.Serializer Data.Serializer.CerealSerializer
instance Data.Serializer.Serializer s => Data.Serializer.Serializer (Data.Serializer.LittleEndianSerializer s)
instance Data.Serializer.Serializer s => Data.Serializer.Serializer (Data.Serializer.BigEndianSerializer s)
instance Data.Serializer.Serializable GHC.Types.Bool
instance Data.Serializer.Serializable GHC.Word.Word8
instance Data.Serializer.Serializable GHC.Word.Word16
instance Data.Serializer.Serializable GHC.Word.Word32
instance Data.Serializer.Serializable GHC.Word.Word64
instance Data.Serializer.Serializable GHC.Types.Word
instance Data.Serializer.Serializable GHC.Int.Int8
instance Data.Serializer.Serializable GHC.Int.Int16
instance Data.Serializer.Serializable GHC.Int.Int32
instance Data.Serializer.Serializable GHC.Int.Int64
instance Data.Serializer.Serializable GHC.Types.Int
instance (Data.Serializer.Serializable α, Data.Serializer.Serializable β) => Data.Serializer.Serializable (α, β)
instance Data.Serializer.Serializable α => Data.Serializer.Serializable (GHC.Base.Maybe α)
instance (Data.Serializer.Serializable α, Data.Serializer.Serializable β) => Data.Serializer.Serializable (Data.Either.Either α β)
instance Data.Serializer.Serializable Data.ByteString.Internal.ByteString
instance Data.Serializer.Serializable Data.ByteString.Short.Internal.ShortByteString
instance Data.Serializer.SizedSerializable GHC.Types.Bool
instance Data.Serializer.SizedSerializable GHC.Word.Word8
instance Data.Serializer.SizedSerializable GHC.Word.Word16
instance Data.Serializer.SizedSerializable GHC.Word.Word32
instance Data.Serializer.SizedSerializable GHC.Word.Word64
instance Data.Serializer.SizedSerializable GHC.Types.Word
instance Data.Serializer.SizedSerializable GHC.Int.Int8
instance Data.Serializer.SizedSerializable GHC.Int.Int16
instance Data.Serializer.SizedSerializable GHC.Int.Int32
instance Data.Serializer.SizedSerializable GHC.Int.Int64
instance Data.Serializer.SizedSerializable GHC.Types.Int
instance (Data.Serializer.SizedSerializable α, Data.Serializer.SizedSerializable β) => Data.Serializer.SizedSerializable (α, β)
instance Data.Serializer.RestSerializable Data.ByteString.Internal.ByteString
instance Data.Serializer.RestSerializable Data.ByteString.Short.Internal.ShortByteString
instance Data.Serializer.RestSerializable Data.ByteString.Lazy.Internal.ByteString
instance Data.Serializer.RestSerializable Data.ByteString.Builder.Internal.Builder
instance Data.Serializer.Serializable α => Data.Serializer.RestSerializable [α]
instance (Data.Serializer.Serializable α, Data.Serializer.RestSerializable β) => Data.Serializer.RestSerializable (α, β)


-- | Deserialization monad and deserializable types.
module Data.Deserializer

-- | Deserialization monad.
class (Monad μ, Parsing μ) => Deserializer μ where endian _ = LittleEndian word8 = unsafeHead <$> take 1 <?> "word8" word16 = getIn (endian (Proxy :: Proxy μ)) word32 = getIn (endian (Proxy :: Proxy μ)) word64 = getIn (endian (Proxy :: Proxy μ)) word16L = (<?> "word16") $ do { bs <- take 2; let l = unsafeIndex bs 0 h = unsafeIndex bs 1; return $ shiftL (fromIntegral h) 8 .|. fromIntegral l } word16B = swapEndian <$> word16L word32L = (<?> "word32") $ do { bs <- take 4; let o₀ = unsafeIndex bs 0 o₁ = unsafeIndex bs 1 o₂ = unsafeIndex bs 2 o₃ = unsafeIndex bs 3; return $ shiftL (fromIntegral o₃) 24 .|. shiftL (fromIntegral o₂) 16 .|. shiftL (fromIntegral o₁) 8 .|. fromIntegral o₀ } word32B = swapEndian <$> word32L word64L = (<?> "word64") $ do { bs <- take 8; let o₀ = unsafeIndex bs 0 o₁ = unsafeIndex bs 1 o₂ = unsafeIndex bs 2 o₃ = unsafeIndex bs 3 o₄ = unsafeIndex bs 4 o₅ = unsafeIndex bs 5 o₆ = unsafeIndex bs 6 o₇ = unsafeIndex bs 7; return $ shiftL (fromIntegral o₇) 56 .|. shiftL (fromIntegral o₆) 48 .|. shiftL (fromIntegral o₅) 40 .|. shiftL (fromIntegral o₄) 32 .|. shiftL (fromIntegral o₃) 24 .|. shiftL (fromIntegral o₂) 16 .|. shiftL (fromIntegral o₁) 8 .|. fromIntegral o₀ } word64B = swapEndian <$> word64L satisfy p = do { w <- word8; if p w then return w else unexpected (show w) } byte w = (<?> "byte " ++ show w) $ do { w' <- word8; if w' == w then return w' else unexpected (show w') } notByte w = (<?> "not byte " ++ show w) $ do { w' <- word8; if w' == w then unexpected (show w') else return w' } bytes bs = (<?> "bytes " ++ show (unpack bs)) $ do { bs' <- take (length bs); if bs' == bs then return bs' else unexpected (show $ unpack bs') } skip n | n <= 0 = pure () | otherwise = word8 *> skip (n - 1) ensure_ = (() <$) . ensure

-- | Default byte order of the deserializer.
endian :: Deserializer μ => Proxy μ -> Endian

-- | Deserialze a byte.
word8 :: Deserializer μ => μ Word8

-- | Deserialize an unsigned 16-bit integer in default byte order.
word16 :: Deserializer μ => μ Word16

-- | Deserialize an unsigned 32-bit integer in default byte order.
word32 :: Deserializer μ => μ Word32

-- | Deserialize an unsigned 64-bit integer in default byte order.
word64 :: Deserializer μ => μ Word64

-- | Deserialize an unsigned 16-bit integer in little endian.
word16L :: Deserializer μ => μ Word16

-- | Deserialize an unsigned 16-bit integer in big endian.
word16B :: Deserializer μ => μ Word16

-- | Deserialize an unsigned 32-bit integer in little endian.
word32L :: Deserializer μ => μ Word32

-- | Deserialize an unsigned 32-bit integer in big endian.
word32B :: Deserializer μ => μ Word32

-- | Deserialize an unsigned 64-bit integer in little endian.
word64L :: Deserializer μ => μ Word64

-- | Deserialize an unsigned 64-bit integer in big endian.
word64B :: Deserializer μ => μ Word64

-- | <a>satisfy</a> <i>p</i> deserializes a byte that satisfies the
--   predicate <i>p</i>, failing otherwise.
satisfy :: Deserializer μ => (Word8 -> Bool) -> μ Word8

-- | Deserialize the specified byte value, failing on any other input.
byte :: Deserializer μ => Word8 -> μ Word8

-- | <a>notByte</a> <i>c</i> deserializes any byte that is not equal to
--   <i>c</i>, failing if <i>c</i> is encountered.
notByte :: Deserializer μ => Word8 -> μ Word8

-- | <a>bytes</a> <i>bs</i> deserializes a sequence of bytes given by
--   <i>bs</i>, failing on any other input.
bytes :: Deserializer μ => ByteString -> μ ByteString

-- | Skip exactly the given number of bytes.
skip :: Deserializer μ => Int -> μ ()

-- | <a>ensure</a> <i>n</i> checks that the input has at least <i>n</i>
--   more bytes and returns a portion of the input of length greater or
--   equal to <i>n</i> (without consuming it).
ensure :: Deserializer μ => Int -> μ ByteString

-- | <a>ensure_</a> <i>n</i> fails if the input has less than <i>n</i> more
--   bytes.
ensure_ :: Deserializer μ => Int -> μ ()

-- | Consume exactly the given number of bytes.
take :: Deserializer μ => Int -> μ ByteString

-- | Consume a portion of the input (the size of the returned
--   <a>ByteString</a> is implementation dependent). Empty result means
--   that the <a>eof</a> is reached.
chunk :: Deserializer μ => μ ByteString

-- | <a>isolate</a> <i>n</i> <i>d</i> feeds the next <i>n</i> bytes to the
--   deserializer <i>d</i>. If <i>d</i> consumes less or more that <i>n</i>
--   bytes, <a>isolate</a> will fail.
isolate :: Deserializer μ => Int -> μ α -> μ α

-- | A wrapper around the <a>Get</a> monad (to avoid orphan instances).
newtype BinaryDeserializer α
BinaryDeserializer :: Get α -> BinaryDeserializer α
[binaryDeserializer] :: BinaryDeserializer α -> Get α

-- | A wrapper around the <a>Get</a> monad (to avoid orphan instances).
newtype CerealDeserializer α
CerealDeserializer :: Get α -> CerealDeserializer α
[cerealDeserializer] :: CerealDeserializer α -> Get α

-- | Deserialize an unsigned 16-bit integer in host byte order.
word16H :: Deserializer μ => μ Word16

-- | Deserialize an unsigned 32-bit integer in host byte order.
word32H :: Deserializer μ => μ Word32

-- | Deserialize an unsigned 64-bit integer in host byte order.
word64H :: Deserializer μ => μ Word64

-- | Deserialize an unsigned native-sized integer in serializer default
--   byte order.
word :: Deserializer μ => μ Word

-- | Deserialize an unsigned native-sized integer in little endian.
wordL :: Deserializer μ => μ Word

-- | Deserialize an unsigned native-sized integer in big endian.
wordB :: Deserializer μ => μ Word

-- | Deserialize an unsigned native-sized integer in host byte order.
wordH :: Deserializer μ => μ Word

-- | Deserialize a signed 8-bit integer.
int8 :: Deserializer μ => μ Int8

-- | Deserialize a signed 16-bit integer in serializer default byte order.
int16 :: Deserializer μ => μ Int16

-- | Deserialize a signed 16-bit integer in little endian.
int16L :: Deserializer μ => μ Int16

-- | Deserialize a signed 16-bit integer in big endian.
int16B :: Deserializer μ => μ Int16

-- | Deserialize a signed 16-bit integer in host byte order.
int16H :: Deserializer μ => μ Int16

-- | Deserialize a signed 32-bit integer in serializer default byte order.
int32 :: Deserializer μ => μ Int32

-- | Deserialize a signed 32-bit integer in little endian.
int32L :: Deserializer μ => μ Int32

-- | Deserialize a signed 32-bit integer in big endian.
int32B :: Deserializer μ => μ Int32

-- | Deserialize a signed 32-bit integer in host byte order.
int32H :: Deserializer μ => μ Int32

-- | Deserialize a signed 64-bit integer in serializer default byte order.
int64 :: Deserializer μ => μ Int64

-- | Deserialize a signed 64-bit integer in little endian.
int64L :: Deserializer μ => μ Int64

-- | Deserialize a signed 64-bit integer in big endian.
int64B :: Deserializer μ => μ Int64

-- | Deserialize a signed 64-bit integer in host byte order.
int64H :: Deserializer μ => μ Int64

-- | Deserialize a signed native-sized integer in serializer default byte
--   order.
int :: Deserializer μ => μ Int

-- | Deserialize a signed native-sized integer in little endian.
intL :: Deserializer μ => μ Int

-- | Deserialize a signed native-sized integer in big endian.
intB :: Deserializer μ => μ Int

-- | Deserialize a signed native-sized integer in host byte order.
intH :: Deserializer μ => μ Int

-- | A shorthand for <a>flip</a> (<a>&lt;?&gt;</a>).
label :: Parsing μ => String -> μ α -> μ α

-- | Deserializer wrapper with little endian default byte order.
newtype LittleEndianDeserializer μ α
LittleEndianDeserializer :: μ α -> LittleEndianDeserializer μ α
[deserializeL] :: LittleEndianDeserializer μ α -> μ α

-- | Deserializer wrapper with big endian default byte order.
newtype BigEndianDeserializer μ α
BigEndianDeserializer :: μ α -> BigEndianDeserializer μ α
[deserializeB] :: BigEndianDeserializer μ α -> μ α

-- | Force the default byte order.
deserializeIn :: Deserializer μ => Endian -> (forall μ'. (Deserializer μ') => μ' α) -> μ α

-- | Force the default byte order to be the host byte order.
deserializeH :: Deserializer μ => (forall μ'. (Deserializer μ') => μ' α) -> μ α

-- | Deserializable type. <a>get</a> must not rely on <a>eof</a>.
class Deserializable α
get :: (Deserializable α, Deserializer μ) => μ α

-- | Deserialize a value using the provided default byte order.
getIn :: (Deserializer μ, Deserializable α) => Endian -> μ α

-- | Deserialize a value using little endian as the default byte order.
getL :: (Deserializer μ, Deserializable α) => μ α

-- | Deserialize a value using big endian as the default byte order.
getB :: (Deserializer μ, Deserializable α) => μ α

-- | Deserialize a value using host byte order as the default byte order.
getH :: (Deserializer μ, Deserializable α) => μ α

-- | Deserializable type. <a>getRest</a> must consume all the remaining
--   input or fail.
class RestDeserializable α
getRest :: (RestDeserializable α, Deserializer μ) => μ α
instance Text.Parser.LookAhead.LookAheadParsing μ => Text.Parser.LookAhead.LookAheadParsing (Data.Deserializer.BigEndianDeserializer μ)
instance Text.Parser.Combinators.Parsing μ => Text.Parser.Combinators.Parsing (Data.Deserializer.BigEndianDeserializer μ)
instance GHC.Base.Monad μ => GHC.Base.Monad (Data.Deserializer.BigEndianDeserializer μ)
instance GHC.Base.Alternative μ => GHC.Base.Alternative (Data.Deserializer.BigEndianDeserializer μ)
instance GHC.Base.Applicative μ => GHC.Base.Applicative (Data.Deserializer.BigEndianDeserializer μ)
instance GHC.Base.Functor μ => GHC.Base.Functor (Data.Deserializer.BigEndianDeserializer μ)
instance GHC.Generics.Generic (Data.Deserializer.BigEndianDeserializer μ α)
instance (Data.Data.Data (μ α), Data.Typeable.Internal.Typeable α, Data.Typeable.Internal.Typeable μ) => Data.Data.Data (Data.Deserializer.BigEndianDeserializer μ α)
instance Text.Parser.LookAhead.LookAheadParsing μ => Text.Parser.LookAhead.LookAheadParsing (Data.Deserializer.LittleEndianDeserializer μ)
instance Text.Parser.Combinators.Parsing μ => Text.Parser.Combinators.Parsing (Data.Deserializer.LittleEndianDeserializer μ)
instance GHC.Base.Monad μ => GHC.Base.Monad (Data.Deserializer.LittleEndianDeserializer μ)
instance GHC.Base.Alternative μ => GHC.Base.Alternative (Data.Deserializer.LittleEndianDeserializer μ)
instance GHC.Base.Applicative μ => GHC.Base.Applicative (Data.Deserializer.LittleEndianDeserializer μ)
instance GHC.Base.Functor μ => GHC.Base.Functor (Data.Deserializer.LittleEndianDeserializer μ)
instance GHC.Generics.Generic (Data.Deserializer.LittleEndianDeserializer μ α)
instance (Data.Data.Data (μ α), Data.Typeable.Internal.Typeable α, Data.Typeable.Internal.Typeable μ) => Data.Data.Data (Data.Deserializer.LittleEndianDeserializer μ α)
instance GHC.Base.Monad Data.Deserializer.CerealDeserializer
instance GHC.Base.Alternative Data.Deserializer.CerealDeserializer
instance GHC.Base.Applicative Data.Deserializer.CerealDeserializer
instance GHC.Base.Functor Data.Deserializer.CerealDeserializer
instance GHC.Generics.Generic (Data.Deserializer.CerealDeserializer α)
instance GHC.Base.Monad Data.Deserializer.BinaryDeserializer
instance GHC.Base.Alternative Data.Deserializer.BinaryDeserializer
instance GHC.Base.Applicative Data.Deserializer.BinaryDeserializer
instance GHC.Base.Functor Data.Deserializer.BinaryDeserializer
instance GHC.Generics.Generic (Data.Deserializer.BinaryDeserializer α)
instance Text.Parser.Combinators.Parsing Data.Deserializer.BinaryDeserializer
instance Text.Parser.LookAhead.LookAheadParsing Data.Deserializer.BinaryDeserializer
instance Data.Deserializer.Deserializer Data.Deserializer.BinaryDeserializer
instance Text.Parser.Combinators.Parsing Data.Deserializer.CerealDeserializer
instance Text.Parser.LookAhead.LookAheadParsing Data.Deserializer.CerealDeserializer
instance Data.Deserializer.Deserializer Data.Deserializer.CerealDeserializer
instance Data.Deserializer.Deserializer μ => Data.Deserializer.Deserializer (Data.Deserializer.LittleEndianDeserializer μ)
instance Data.Deserializer.Deserializer μ => Data.Deserializer.Deserializer (Data.Deserializer.BigEndianDeserializer μ)
instance Data.Deserializer.Deserializable GHC.Types.Bool
instance Data.Deserializer.Deserializable GHC.Word.Word8
instance Data.Deserializer.Deserializable GHC.Word.Word16
instance Data.Deserializer.Deserializable GHC.Word.Word32
instance Data.Deserializer.Deserializable GHC.Word.Word64
instance Data.Deserializer.Deserializable GHC.Types.Word
instance Data.Deserializer.Deserializable GHC.Int.Int8
instance Data.Deserializer.Deserializable GHC.Int.Int16
instance Data.Deserializer.Deserializable GHC.Int.Int32
instance Data.Deserializer.Deserializable GHC.Int.Int64
instance Data.Deserializer.Deserializable GHC.Types.Int
instance (Data.Deserializer.Deserializable α, Data.Deserializer.Deserializable β) => Data.Deserializer.Deserializable (α, β)
instance Data.Deserializer.Deserializable α => Data.Deserializer.Deserializable (GHC.Base.Maybe α)
instance (Data.Deserializer.Deserializable α, Data.Deserializer.Deserializable β) => Data.Deserializer.Deserializable (Data.Either.Either α β)
instance Data.Deserializer.Deserializable Data.ByteString.Internal.ByteString
instance Data.Deserializer.Deserializable Data.ByteString.Short.Internal.ShortByteString
instance Data.Deserializer.RestDeserializable Data.ByteString.Internal.ByteString
instance Data.Deserializer.RestDeserializable Data.ByteString.Short.Internal.ShortByteString
instance Data.Deserializer.RestDeserializable Data.ByteString.Lazy.Internal.ByteString
instance Data.Deserializer.RestDeserializable Data.ByteString.Builder.Internal.Builder
instance (Data.Deserializer.RestDeserializable α, Data.Deserializer.RestDeserializable β) => Data.Deserializer.RestDeserializable (Data.Either.Either α β)
instance (Data.Deserializer.Deserializable α, Data.Deserializer.RestDeserializable β) => Data.Deserializer.RestDeserializable (α, β)
instance Data.Deserializer.Deserializable α => Data.Deserializer.RestDeserializable [α]
