binary-orphans-0.1.8.0: Orphan instances for binary

Copyright(C) 2015 Oleg Grenrus
LicenseBSD3
MaintainerOleg Grenrus <oleg.grenrus@iki.fi>
Safe HaskellNone
LanguageHaskell2010

Data.Binary.Orphans

Contents

Description

Provides orphan Binary instances for types in various packages:

  • aeson
  • scientific (prior to scientific-0.3.4.0)
  • semigroups
  • tagged
  • text (through text-binary, or text >= 1.2.1)
  • time
  • unordered-containers
  • vector (through vector-binary-instances)

Also there is Binary Fixed instance.

Synopsis

Class re-export

class Binary t where #

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 == id

That is, the get and put methods should be the inverse of each other. A range of instances are provided for basic Haskell types.

Methods

put :: t -> Put #

Encode a value in the Put monad.

get :: Get t #

Decode a value in the Get monad

putList :: [t] -> Put #

Encode a list of values in the Put monad. The default implementation may be overridden to be more efficient but must still have the same encoding format.

Instances
Binary Bool 
Instance details

Defined in Data.Binary.Class

Methods

put :: Bool -> Put #

get :: Get Bool #

putList :: [Bool] -> Put #

Binary Char 
Instance details

Defined in Data.Binary.Class

Methods

put :: Char -> Put #

get :: Get Char #

putList :: [Char] -> Put #

Binary Double 
Instance details

Defined in Data.Binary.Class

Methods

put :: Double -> Put #

get :: Get Double #

putList :: [Double] -> Put #

Binary Float 
Instance details

Defined in Data.Binary.Class

Methods

put :: Float -> Put #

get :: Get Float #

putList :: [Float] -> Put #

Binary Int 
Instance details

Defined in Data.Binary.Class

Methods

put :: Int -> Put #

get :: Get Int #

putList :: [Int] -> Put #

Binary Int8 
Instance details

Defined in Data.Binary.Class

Methods

put :: Int8 -> Put #

get :: Get Int8 #

putList :: [Int8] -> Put #

Binary Int16 
Instance details

Defined in Data.Binary.Class

Methods

put :: Int16 -> Put #

get :: Get Int16 #

putList :: [Int16] -> Put #

Binary Int32 
Instance details

Defined in Data.Binary.Class

Methods

put :: Int32 -> Put #

get :: Get Int32 #

putList :: [Int32] -> Put #

Binary Int64 
Instance details

Defined in Data.Binary.Class

Methods

put :: Int64 -> Put #

get :: Get Int64 #

putList :: [Int64] -> Put #

Binary Integer 
Instance details

Defined in Data.Binary.Class

Methods

put :: Integer -> Put #

get :: Get Integer #

putList :: [Integer] -> Put #

Binary Natural

Since: 0.7.3.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Natural -> Put #

get :: Get Natural #

putList :: [Natural] -> Put #

Binary Ordering 
Instance details

Defined in Data.Binary.Class

Methods

put :: Ordering -> Put #

get :: Get Ordering #

putList :: [Ordering] -> Put #

Binary Word 
Instance details

Defined in Data.Binary.Class

Methods

put :: Word -> Put #

get :: Get Word #

putList :: [Word] -> Put #

Binary Word8 
Instance details

Defined in Data.Binary.Class

Methods

put :: Word8 -> Put #

get :: Get Word8 #

putList :: [Word8] -> Put #

Binary Word16 
Instance details

Defined in Data.Binary.Class

Methods

put :: Word16 -> Put #

get :: Get Word16 #

putList :: [Word16] -> Put #

Binary Word32 
Instance details

Defined in Data.Binary.Class

Methods

put :: Word32 -> Put #

get :: Get Word32 #

putList :: [Word32] -> Put #

Binary Word64 
Instance details

Defined in Data.Binary.Class

Methods

put :: Word64 -> Put #

get :: Get Word64 #

putList :: [Word64] -> Put #

Binary RuntimeRep

@since 0.8.5.0. See

Instance details

Defined in Data.Binary.Class

Binary VecCount

@since 0.8.5.0. See

Instance details

Defined in Data.Binary.Class

Methods

put :: VecCount -> Put #

get :: Get VecCount #

putList :: [VecCount] -> Put #

Binary VecElem

@since 0.8.5.0. See

Instance details

Defined in Data.Binary.Class

Methods

put :: VecElem -> Put #

get :: Get VecElem #

putList :: [VecElem] -> Put #

Binary SomeTypeRep 
Instance details

Defined in Data.Binary.Class

Binary () 
Instance details

Defined in Data.Binary.Class

Methods

put :: () -> Put #

get :: Get () #

putList :: [()] -> Put #

Binary TyCon

@since 0.8.5.0. See

Instance details

Defined in Data.Binary.Class

Methods

put :: TyCon -> Put #

get :: Get TyCon #

putList :: [TyCon] -> Put #

Binary KindRep

@since 0.8.5.0. See

Instance details

Defined in Data.Binary.Class

Methods

put :: KindRep -> Put #

get :: Get KindRep #

putList :: [KindRep] -> Put #

Binary TypeLitSort

@since 0.8.5.0. See

Instance details

Defined in Data.Binary.Class

Binary ByteString 
Instance details

Defined in Data.Binary.Class

Binary ByteString 
Instance details

Defined in Data.Binary.Class

Binary Scientific

Note that in the future I intend to change the type of the base10Exponent from Int to Integer. To be forward compatible the Binary instance already encodes the exponent as Integer.

Instance details

Defined in Data.Scientific

Binary UTCTime # 
Instance details

Defined in Data.Binary.Orphans

Methods

put :: UTCTime -> Put #

get :: Get UTCTime #

putList :: [UTCTime] -> Put #

Binary Value # 
Instance details

Defined in Data.Binary.Orphans

Methods

put :: Value -> Put #

get :: Get Value #

putList :: [Value] -> Put #

Binary Void

Since: 0.8.0.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Void -> Put #

get :: Get Void #

putList :: [Void] -> Put #

Binary Version

Since: 0.8.0.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Version -> Put #

get :: Get Version #

putList :: [Version] -> Put #

Binary All

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: All -> Put #

get :: Get All #

putList :: [All] -> Put #

Binary Any

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Any -> Put #

get :: Get Any #

putList :: [Any] -> Put #

Binary Fingerprint

Since: 0.7.6.0

Instance details

Defined in Data.Binary.Class

Binary ShortByteString 
Instance details

Defined in Data.Binary.Class

Binary IntSet 
Instance details

Defined in Data.Binary.Class

Methods

put :: IntSet -> Put #

get :: Get IntSet #

putList :: [IntSet] -> Put #

Binary ZonedTime #

Since: binary-orphans-0.1.8.0

Instance details

Defined in Data.Binary.Orphans

Binary LocalTime # 
Instance details

Defined in Data.Binary.Orphans

Binary TimeOfDay # 
Instance details

Defined in Data.Binary.Orphans

Binary TimeZone # 
Instance details

Defined in Data.Binary.Orphans

Methods

put :: TimeZone -> Put #

get :: Get TimeZone #

putList :: [TimeZone] -> Put #

Binary UniversalTime # 
Instance details

Defined in Data.Binary.Orphans

Binary SystemTime #

Since: binary-orphans-0.1.7.0

Instance details

Defined in Data.Binary.Orphans

Binary NominalDiffTime # 
Instance details

Defined in Data.Binary.Orphans

Binary AbsoluteTime #

Since: binary-orphans-0.1.4.0

Instance details

Defined in Data.Binary.Orphans

Binary DiffTime # 
Instance details

Defined in Data.Binary.Orphans

Methods

put :: DiffTime -> Put #

get :: Get DiffTime #

putList :: [DiffTime] -> Put #

Binary Day # 
Instance details

Defined in Data.Binary.Orphans

Methods

put :: Day -> Put #

get :: Get Day #

putList :: [Day] -> Put #

Binary a => Binary [a] 
Instance details

Defined in Data.Binary.Class

Methods

put :: [a] -> Put #

get :: Get [a] #

putList :: [[a]] -> Put #

Binary a => Binary (Maybe a) 
Instance details

Defined in Data.Binary.Class

Methods

put :: Maybe a -> Put #

get :: Get (Maybe a) #

putList :: [Maybe a] -> Put #

(Binary a, Integral a) => Binary (Ratio a) 
Instance details

Defined in Data.Binary.Class

Methods

put :: Ratio a -> Put #

get :: Get (Ratio a) #

putList :: [Ratio a] -> Put #

Binary a => Binary (Complex a) 
Instance details

Defined in Data.Binary.Class

Methods

put :: Complex a -> Put #

get :: Get (Complex a) #

putList :: [Complex a] -> Put #

Binary (Fixed a)

Since: 0.8.0.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Fixed a -> Put #

get :: Get (Fixed a) #

putList :: [Fixed a] -> Put #

Binary a => Binary (Min a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Min a -> Put #

get :: Get (Min a) #

putList :: [Min a] -> Put #

Binary a => Binary (Max a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Max a -> Put #

get :: Get (Max a) #

putList :: [Max a] -> Put #

Binary a => Binary (First a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: First a -> Put #

get :: Get (First a) #

putList :: [First a] -> Put #

Binary a => Binary (Last a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Last a -> Put #

get :: Get (Last a) #

putList :: [Last a] -> Put #

Binary m => Binary (WrappedMonoid m)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Binary a => Binary (Option a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Option a -> Put #

get :: Get (Option a) #

putList :: [Option a] -> Put #

Binary a => Binary (First a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: First a -> Put #

get :: Get (First a) #

putList :: [First a] -> Put #

Binary a => Binary (Last a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Last a -> Put #

get :: Get (Last a) #

putList :: [Last a] -> Put #

Binary a => Binary (Dual a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Dual a -> Put #

get :: Get (Dual a) #

putList :: [Dual a] -> Put #

Binary a => Binary (Sum a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Sum a -> Put #

get :: Get (Sum a) #

putList :: [Sum a] -> Put #

Binary a => Binary (Product a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Product a -> Put #

get :: Get (Product a) #

putList :: [Product a] -> Put #

Binary a => Binary (NonEmpty a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: NonEmpty a -> Put #

get :: Get (NonEmpty a) #

putList :: [NonEmpty a] -> Put #

(FoldCase a, Binary a) => Binary (CI a) #

Since: binary-orphans-0.1.5.0

Instance details

Defined in Data.Binary.Orphans

Methods

put :: CI a -> Put #

get :: Get (CI a) #

putList :: [CI a] -> Put #

Binary e => Binary (IntMap e) 
Instance details

Defined in Data.Binary.Class

Methods

put :: IntMap e -> Put #

get :: Get (IntMap e) #

putList :: [IntMap e] -> Put #

Binary e => Binary (Tree e) 
Instance details

Defined in Data.Binary.Class

Methods

put :: Tree e -> Put #

get :: Get (Tree e) #

putList :: [Tree e] -> Put #

Binary e => Binary (Seq e) 
Instance details

Defined in Data.Binary.Class

Methods

put :: Seq e -> Put #

get :: Get (Seq e) #

putList :: [Seq e] -> Put #

Binary a => Binary (Set a) 
Instance details

Defined in Data.Binary.Class

Methods

put :: Set a -> Put #

get :: Get (Set a) #

putList :: [Set a] -> Put #

(Hashable a, Binary a) => Binary (Hashed a) # 
Instance details

Defined in Data.Binary.Orphans

Methods

put :: Hashed a -> Put #

get :: Get (Hashed a) #

putList :: [Hashed a] -> Put #

(Hashable v, Eq v, Binary v) => Binary (HashSet v) # 
Instance details

Defined in Data.Binary.Orphans

Methods

put :: HashSet v -> Put #

get :: Get (HashSet v) #

putList :: [HashSet v] -> Put #

(Binary a, Binary b) => Binary (Either a b) 
Instance details

Defined in Data.Binary.Class

Methods

put :: Either a b -> Put #

get :: Get (Either a b) #

putList :: [Either a b] -> Put #

Typeable a => Binary (TypeRep a) 
Instance details

Defined in Data.Binary.Class

Methods

put :: TypeRep a -> Put #

get :: Get (TypeRep a) #

putList :: [TypeRep a] -> Put #

(Binary a, Binary b) => Binary (a, b) 
Instance details

Defined in Data.Binary.Class

Methods

put :: (a, b) -> Put #

get :: Get (a, b) #

putList :: [(a, b)] -> Put #

(Hashable k, Eq k, Binary k, Binary v) => Binary (HashMap k v) # 
Instance details

Defined in Data.Binary.Orphans

Methods

put :: HashMap k v -> Put #

get :: Get (HashMap k v) #

putList :: [HashMap k v] -> Put #

(Binary k, Binary e) => Binary (Map k e) 
Instance details

Defined in Data.Binary.Class

Methods

put :: Map k e -> Put #

get :: Get (Map k e) #

putList :: [Map k e] -> Put #

(Binary i, Ix i, Binary e, IArray UArray e) => Binary (UArray i e) 
Instance details

Defined in Data.Binary.Class

Methods

put :: UArray i e -> Put #

get :: Get (UArray i e) #

putList :: [UArray i e] -> Put #

(Binary i, Ix i, Binary e) => Binary (Array i e) 
Instance details

Defined in Data.Binary.Class

Methods

put :: Array i e -> Put #

get :: Get (Array i e) #

putList :: [Array i e] -> Put #

(Binary a, Binary b) => Binary (Arg a b)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Arg a b -> Put #

get :: Get (Arg a b) #

putList :: [Arg a b] -> Put #

(Binary a, Binary b, Binary c) => Binary (a, b, c) 
Instance details

Defined in Data.Binary.Class

Methods

put :: (a, b, c) -> Put #

get :: Get (a, b, c) #

putList :: [(a, b, c)] -> Put #

Binary (f a) => Binary (Alt f a)

Since: 0.8.4.0

Instance details

Defined in Data.Binary.Class

Methods

put :: Alt f a -> Put #

get :: Get (Alt f a) #

putList :: [Alt f a] -> Put #

Binary b => Binary (Tagged s b) # 
Instance details

Defined in Data.Binary.Orphans

Methods

put :: Tagged s b -> Put #

get :: Get (Tagged s b) #

putList :: [Tagged s b] -> Put #

(Binary a, Binary b, Binary c, Binary d) => Binary (a, b, c, d) 
Instance details

Defined in Data.Binary.Class

Methods

put :: (a, b, c, d) -> Put #

get :: Get (a, b, c, d) #

putList :: [(a, b, c, d)] -> Put #

(Binary a, Binary b, Binary c, Binary d, Binary e) => Binary (a, b, c, d, e) 
Instance details

Defined in Data.Binary.Class

Methods

put :: (a, b, c, d, e) -> Put #

get :: Get (a, b, c, d, e) #

putList :: [(a, b, c, d, e)] -> Put #

(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f) => Binary (a, b, c, d, e, f) 
Instance details

Defined in Data.Binary.Class

Methods

put :: (a, b, c, d, e, f) -> Put #

get :: Get (a, b, c, d, e, f) #

putList :: [(a, b, c, d, e, f)] -> Put #

(Binary a, Binary b, Binary c, Binary d, Binary e, Binary f, Binary g) => Binary (a, b, c, d, e, f, g) 
Instance details

Defined in Data.Binary.Class

Methods

put :: (a, b, c, d, e, f, g) -> Put #

get :: Get (a, b, c, d, e, f, g) #

putList :: [(a, b, c, d, e, f, g)] -> Put #

(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) 
Instance details

Defined in Data.Binary.Class

Methods

put :: (a, b, c, d, e, f, g, h) -> Put #

get :: Get (a, b, c, d, e, f, g, h) #

putList :: [(a, b, c, d, e, f, g, h)] -> Put #

(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) 
Instance details

Defined in Data.Binary.Class

Methods

put :: (a, b, c, d, e, f, g, h, i) -> Put #

get :: Get (a, b, c, d, e, f, g, h, i) #

putList :: [(a, b, c, d, e, f, g, h, i)] -> Put #

(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) 
Instance details

Defined in Data.Binary.Class

Methods

put :: (a, b, c, d, e, f, g, h, i, j) -> Put #

get :: Get (a, b, c, d, e, f, g, h, i, j) #

putList :: [(a, b, c, d, e, f, g, h, i, j)] -> Put #

Module re-export

Orphan instances

Binary UTCTime Source # 
Instance details

Methods

put :: UTCTime -> Put #

get :: Get UTCTime #

putList :: [UTCTime] -> Put #

Binary Value Source # 
Instance details

Methods

put :: Value -> Put #

get :: Get Value #

putList :: [Value] -> Put #

Binary ZonedTime Source #

Since: binary-orphans-0.1.8.0

Instance details

Binary LocalTime Source # 
Instance details

Binary TimeOfDay Source # 
Instance details

Binary TimeZone Source # 
Instance details

Methods

put :: TimeZone -> Put #

get :: Get TimeZone #

putList :: [TimeZone] -> Put #

Binary UniversalTime Source # 
Instance details

Binary SystemTime Source #

Since: binary-orphans-0.1.7.0

Instance details

Binary NominalDiffTime Source # 
Instance details

Binary AbsoluteTime Source #

Since: binary-orphans-0.1.4.0

Instance details

Binary DiffTime Source # 
Instance details

Methods

put :: DiffTime -> Put #

get :: Get DiffTime #

putList :: [DiffTime] -> Put #

Binary Day Source # 
Instance details

Methods

put :: Day -> Put #

get :: Get Day #

putList :: [Day] -> Put #

(FoldCase a, Binary a) => Binary (CI a) Source #

Since: binary-orphans-0.1.5.0

Instance details

Methods

put :: CI a -> Put #

get :: Get (CI a) #

putList :: [CI a] -> Put #

(Hashable a, Binary a) => Binary (Hashed a) Source # 
Instance details

Methods

put :: Hashed a -> Put #

get :: Get (Hashed a) #

putList :: [Hashed a] -> Put #

(Hashable v, Eq v, Binary v) => Binary (HashSet v) Source # 
Instance details

Methods

put :: HashSet v -> Put #

get :: Get (HashSet v) #

putList :: [HashSet v] -> Put #

(Hashable k, Eq k, Binary k, Binary v) => Binary (HashMap k v) Source # 
Instance details

Methods

put :: HashMap k v -> Put #

get :: Get (HashMap k v) #

putList :: [HashMap k v] -> Put #

Binary b => Binary (Tagged s b) Source # 
Instance details

Methods

put :: Tagged s b -> Put #

get :: Get (Tagged s b) #

putList :: [Tagged s b] -> Put #