Serialise a Haskell value to an external binary representation.
The output is represented as a lazy ByteString and is constructed incrementally.
:: a typeCtrl KGHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05
Moduleserialise-0.2.6.1Haskell2010
This module provides functions to serialise and deserialise Haskell
values for storage or transmission, to and from lazy
ByteStrings. It also provides a type class
and utilities to help you make your types serialisable.
For a full tutorial on using this module, see Codec.Serialise.Tutorial.
The following API exposes a high level interface allowing you to quickly
convert between arbitrary Haskell values (which are an instance of
Serialise) and lazy ByteStrings.
Serialise a Haskell value to an external binary representation.
The output is represented as a lazy ByteString and is constructed incrementally.
Deserialise a Haskell value from the external binary representation (which must have been made using serialise or related function).
Throws: DeserialiseFailure if the given external
representation is invalid or does not correspond to a value of the
expected type.
Deserialise a Haskell value from the external binary representation,
or get back a .DeserialiseFailure
An exception type that may be returned (by pure functions) or thrown (by IO actions) that fail to deserialise a given input.
Eq DeserialiseFailureDefined in cborg-0.2.10.0 · Codec.CBOR.ReadShow DeserialiseFailureDefined in cborg-0.2.10.0 · Codec.CBOR.ReadException DeserialiseFailureDefined in cborg-0.2.10.0 · Codec.CBOR.ReadNFData DeserialiseFailureDefined in cborg-0.2.10.0 · Codec.CBOR.ReadThe following API allows you to encode or decode CBOR values incrementally, which is useful for large structures that require you to stream values in over time.
Deserialise a Haskell value from the external binary representation.
This allows input data to be provided incrementally, rather than all in one go. It also gives an explicit representation of deserialisation errors.
Note that the incremental behaviour is only for the input data, not the output value: the final deserialised value is constructed and returned as a whole, not incrementally.
An Incremental decoder, used to represent the result of
attempting to run a decoder over a given input, and return a value
of type a.
Partial (Maybe ByteString -> ST s (IDecode s a))Done !ByteString !ByteOffset aThe decoder has successfully finished. Except for the output value you also get any unused input as well as the number of bytes consumed.
Fail !ByteString !ByteOffset DeserialiseFailureThe decoder ran into an error. The decoder either used fail or was not provided enough input. Contains any unconsumed input, the number of bytes consumed, and a DeserialiseFailure exception describing the reason why the failure occurred.
Serialise classTypes that are instances of the Serialise class allow values
to be quickly encoded or decoded directly to a CBOR representation,
for object transmission or storage.
encode :: a -> Encodingdecode :: Decoder s aDefinition of a given Decoder for a type.
encodeList :: [a] -> EncodingdecodeList :: Decoder s [a]Serialise ByteStringDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise ByteStringDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise ShortByteStringDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise TermDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise IntSetDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise IntegerDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise NaturalDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise VoidDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise AllDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise AnyDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise SomeTypeRepDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise VersionDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise FingerprintDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CCharDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CClockDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CDoubleDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CFloatDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CIntDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CIntMaxDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CIntPtrDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CLLongDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CLongDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CPtrdiffDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CSCharDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CSUSecondsDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CShortDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CSigAtomicDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CSizeDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CTimeDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CUCharDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CUIntDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CUIntMaxDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CUIntPtrDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CULLongDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CULongDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CUSecondsDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CUShortDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CWcharDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise ExitCodeDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise Int16Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise Int32Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise Int64Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise Int8Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise Word16Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise Word32Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise Word64Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise Word8Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise BoolDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise CharDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise DoubleDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise FloatDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise IntDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise KindRepDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise LevityDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise OrderingDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise RuntimeRepDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise TyConDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise TypeLitSortDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise VecCountDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise VecElemDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise WordDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise HalfDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise TextDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise TextDefined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise UTCTimeDefined in serialise-0.2.6.1 · Codec.Serialise.ClassUTCTime is encoded using the extended time format which is currently in Internet Draft state, https://tools.ietf.org/html/draft-bormann-cbor-time-tag-00.
Serialise ()Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Complex a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (First a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Last a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Max a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Min a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (WrappedMonoid a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (IntMap a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Seq a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Tree a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (NonEmpty a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Identity a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (First a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Last a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Down a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Dual a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Product a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Sum a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (ZipList a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Maybe a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Maybe a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Vector a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise [a]Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Ord a, Serialise a) => Serialise (Set a)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Storable a) => Serialise (Vector a)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Integral a) => Serialise (Ratio a)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Hashable a, Eq a) => Serialise (HashSet a)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Prim a) => Serialise (Vector a)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Unbox a) => Serialise (Vector a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassTypeable a => Serialise (TypeRep a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise (Fixed e)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassValues are serialised in units of least precision represented as
Integer.
Serialise (Proxy a)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Ord k, Serialise k, Serialise v) => Serialise (Map k v)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b) => Serialise (Either a b)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b) => Serialise (Either a b)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b) => Serialise (These a b)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b) => Serialise (Pair a b)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b) => Serialise (These a b)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b) => Serialise (a, b)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise k, Hashable k, Eq k, Serialise v) => Serialise (HashMap k v)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise (f a) => Serialise (Alt f a)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassSerialise a => Serialise (Const a b)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b, Serialise c) => Serialise (a, b, c)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b, Serialise c, Serialise d) => Serialise (a, b, c, d)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b, Serialise c, Serialise d, Serialise e) => Serialise (a, b, c, d, e)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b, Serialise c, Serialise d, Serialise e, Serialise f) => Serialise (a, b, c, d, e, f)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b, Serialise c, Serialise d, Serialise e, Serialise f, Serialise g) => Serialise (a, b, c, d, e, f, g)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b, Serialise c, Serialise d, Serialise e, Serialise f, Serialise g, Serialise h) => Serialise (a, b, c, d, e, f, g, h)Defined in serialise-0.2.6.1 · Codec.Serialise.Class(Serialise a, Serialise b, Serialise c, Serialise d, Serialise e, Serialise f, Serialise g, Serialise h, Serialise i) => Serialise (a, b, c, d, e, f, g, h, i)Defined in serialise-0.2.6.1 · Codec.Serialise.ClassConvenient utilities for basic IO operations.
FilePath APIwriteFileSerialise Serialise a ByteString and write it directly to the
specified file.
readFileDeserialise Read the specified file (internally, by reading a ByteString)
and attempt to decode it into a Haskell value using deserialise
(the type of which is determined by the choice of the result type).
Throws: DeserialiseFailure if the file fails to
deserialise properly.
Handle APIhPutSerialise Serialise a ByteString (via serialise) and write it directly
to the specified Handle.