The Binary class provides put and get, methods to encode and decode a Haskell value to a lazy ByteString. It mirrors the Read and Show classes for textual representation of Haskell types, and is suitable for serialising Haskell values to disk, over the network.
For decoding and generating simple external binary formats (e.g. C structures), Binary may be used, but in general is not suitable for complex protocols. Instead use the Put and Get primitives directly.
Instances of Binary should satisfy the following property:
decode . encode == idThat is, the get and put methods should be the inverse of each other. A range of instances are provided for basic Haskell types.
Instances71Binary, …
Binary ByteStringDefined in binary-0.8.9.3 · Data.Binary.ClassBinary ByteStringDefined in binary-0.8.9.3 · Data.Binary.ClassBinary ShortByteStringDefined in binary-0.8.9.3 · Data.Binary.ClassBinary IntSetDefined in binary-0.8.9.3 · Data.Binary.ClassBinary IntegerDefined in binary-0.8.9.3 · Data.Binary.ClassBinary NaturalDefined in binary-0.8.9.3 · Data.Binary.ClassBinary VoidDefined in binary-0.8.9.3 · Data.Binary.ClassBinary AllDefined in binary-0.8.9.3 · Data.Binary.ClassBinary AnyDefined in binary-0.8.9.3 · Data.Binary.ClassBinary SomeTypeRepDefined in binary-0.8.9.3 · Data.Binary.ClassBinary VersionDefined in binary-0.8.9.3 · Data.Binary.ClassBinary FingerprintDefined in binary-0.8.9.3 · Data.Binary.ClassBinary Int16Defined in binary-0.8.9.3 · Data.Binary.ClassBinary Int32Defined in binary-0.8.9.3 · Data.Binary.ClassBinary Int64Defined in binary-0.8.9.3 · Data.Binary.ClassBinary Int8Defined in binary-0.8.9.3 · Data.Binary.ClassBinary Word16Defined in binary-0.8.9.3 · Data.Binary.ClassBinary Word32Defined in binary-0.8.9.3 · Data.Binary.ClassBinary Word64Defined in binary-0.8.9.3 · Data.Binary.ClassBinary Word8Defined in binary-0.8.9.3 · Data.Binary.ClassBinary BoolDefined in binary-0.8.9.3 · Data.Binary.ClassBinary CharDefined in binary-0.8.9.3 · Data.Binary.ClassBinary DoubleDefined in binary-0.8.9.3 · Data.Binary.ClassUses non-IEEE754 encoding. Does not round-trip NaN.
Binary FloatDefined in binary-0.8.9.3 · Data.Binary.ClassUses non-IEEE754 encoding. Does not round-trip NaN.
Binary IntDefined in binary-0.8.9.3 · Data.Binary.ClassBinary KindRepDefined in binary-0.8.9.3 · Data.Binary.ClassBinary OrderingDefined in binary-0.8.9.3 · Data.Binary.ClassBinary RuntimeRepDefined in binary-0.8.9.3 · Data.Binary.ClassBinary TyConDefined in binary-0.8.9.3 · Data.Binary.ClassBinary TypeLitSortDefined in binary-0.8.9.3 · Data.Binary.ClassBinary VecCountDefined in binary-0.8.9.3 · Data.Binary.ClassBinary VecElemDefined in binary-0.8.9.3 · Data.Binary.ClassBinary WordDefined in binary-0.8.9.3 · Data.Binary.ClassBinary ()Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Complex a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (First a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Last a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Max a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Min a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Set a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (NonEmpty a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Identity a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (First a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Last a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Dual a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Product a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Sum a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary (Maybe a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary a => Binary [a]Defined in binary-0.8.9.3 · Data.Binary.ClassBinary e => Binary (IntMap e)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary e => Binary (Seq e)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary e => Binary (Tree e)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary m => Binary (WrappedMonoid m)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Integral a) => Binary (Ratio a)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary (Fixed a)Defined in binary-0.8.9.3 · Data.Binary.ClassTypeable a => Binary (TypeRep a)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b) => Binary (Arg a b)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b) => Binary (Either a b)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b) => Binary (a, b)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary i, Ix i, Binary e) => Binary (Array i e)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary i, Ix i, Binary e, IArray UArray e) => Binary (UArray i e)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary k, Binary e) => Binary (Map k e)Defined in binary-0.8.9.3 · Data.Binary.ClassBinary (f a) => Binary (Alt f a)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b, Binary c) => Binary (a, b, c)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b, Binary c, Binary d) => Binary (a, b, c, d)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b, Binary c, Binary d, Binary e) => Binary (a, b, c, d, e)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f) => Binary (a, b, c, d, e, f)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g) => Binary (a, b, c, d, e, f, g)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g, Binary h) => Binary (a, b, c, d, e, f, g, h)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g, Binary h, Binary i) => Binary (a, b, c, d, e, f, g, h, i)Defined in binary-0.8.9.3 · Data.Binary.Class(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g, Binary h, Binary i, Binary j) => Binary (a, b, c, d, e, f, g, h, i, j)Defined in binary-0.8.9.3 · Data.Binary.Class