store-0.5.0.1: Fast binary serialization

Safe HaskellNone
LanguageHaskell2010

Data.Store.Internal

Contents

Description

Internal API for the store package. The functions here which are not re-exported by Data.Store are less likely to have stable APIs.

This module also defines most of the included Store instances, for types from the base package and other commonly used packages (bytestring, containers, text, time, etc).

Synopsis

Encoding and decoding strict ByteStrings.

encode :: Store a => a -> ByteString #

Serializes a value to a ByteString. In order to do this, it first allocates a ByteString of the correct size (based on size), and then uses poke to fill it.

Safety of this function depends on correctness of the Store instance. If size returns a. The good news is that this isn't an issue if you use well-tested manual instances (such as those from this package) combined with auomatic definition of instances.

decode :: Store a => ByteString -> Either PeekException a #

Decodes a value from a ByteString. Returns an exception if there's an error while decoding, or if decoding undershoots / overshoots the end of the buffer.

decodeWith :: Peek a -> ByteString -> Either PeekException a #

Decodes a value from a ByteString, potentially throwing exceptions, and taking a Peek to run. It is an exception to not consume all input.

decodeEx :: Store a => ByteString -> a #

Decodes a value from a ByteString, potentially throwing exceptions. It is an exception to not consume all input.

decodeExWith :: Peek a -> ByteString -> a #

Decodes a value from a ByteString, potentially throwing exceptions, and taking a Peek to run. It is an exception to not consume all input.

decodeExPortionWith :: Peek a -> ByteString -> (Offset, a) #

Similar to decodeExWith, but it allows there to be more of the buffer remaining. The Offset of the buffer contents immediately after the decoded value is returned.

decodeIO :: Store a => ByteString -> IO a #

Decodes a value from a ByteString, potentially throwing exceptions. It is an exception to not consume all input.

decodeIOWith :: Peek a -> ByteString -> IO a #

Decodes a value from a ByteString, potentially throwing exceptions, and taking a Peek to run. It is an exception to not consume all input.

decodeIOPortionWith :: Peek a -> ByteString -> IO (Offset, a) #

Similar to decodeExPortionWith, but runs in the IO monad.

Store class and related types.

class Store a where #

The Store typeclass provides efficient serialization and deserialization to raw pointer addresses.

The peek and poke methods should be defined such that decodeEx (encode x) == x .

Methods

size :: Size a #

Yields the Size of the buffer, in bytes, required to store the encoded representation of the type.

Note that the correctness of this function is crucial for the safety of poke, as it does not do any bounds checking. It is the responsibility of the invoker of poke (encode and similar functions) to ensure that there's enough space in the output buffer. If poke writes beyond, then arbitrary memory can be overwritten, causing undefined behavior and segmentation faults.

poke :: a -> Poke () #

Serializes a value to bytes. It is the responsibility of the caller to ensure that at least the number of bytes required by size are available. These details are handled by encode and similar utilities.

peek :: Peek a #

Serialized a value from bytes, throwing exceptions if it encounters invalid data or runs out of input bytes.

size :: (Generic a, GStoreSize (Rep a)) => Size a #

Yields the Size of the buffer, in bytes, required to store the encoded representation of the type.

Note that the correctness of this function is crucial for the safety of poke, as it does not do any bounds checking. It is the responsibility of the invoker of poke (encode and similar functions) to ensure that there's enough space in the output buffer. If poke writes beyond, then arbitrary memory can be overwritten, causing undefined behavior and segmentation faults.

poke :: (Generic a, GStorePoke (Rep a)) => a -> Poke () #

Serializes a value to bytes. It is the responsibility of the caller to ensure that at least the number of bytes required by size are available. These details are handled by encode and similar utilities.

peek :: (Generic a, GStorePeek (Rep a)) => Peek a #

Serialized a value from bytes, throwing exceptions if it encounters invalid data or runs out of input bytes.

Instances
Store Bool # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Bool #

poke :: Bool -> Poke () #

peek :: Peek Bool #

Store Char # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Char #

poke :: Char -> Poke () #

peek :: Peek Char #

Store Double # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Double #

poke :: Double -> Poke () #

peek :: Peek Double #

Store Float # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Float #

poke :: Float -> Poke () #

peek :: Peek Float #

Store Int # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Int #

poke :: Int -> Poke () #

peek :: Peek Int #

Store Int8 # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Int8 #

poke :: Int8 -> Poke () #

peek :: Peek Int8 #

Store Int16 # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Int16 #

poke :: Int16 -> Poke () #

peek :: Peek Int16 #

Store Int32 # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Int32 #

poke :: Int32 -> Poke () #

peek :: Peek Int32 #

Store Int64 # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Int64 #

poke :: Int64 -> Poke () #

peek :: Peek Int64 #

Store Integer # 
Instance details

Defined in Data.Store.Internal

Store Word # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Word #

poke :: Word -> Poke () #

peek :: Peek Word #

Store Word8 # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Word8 #

poke :: Word8 -> Poke () #

peek :: Peek Word8 #

Store Word16 # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Word16 #

poke :: Word16 -> Poke () #

peek :: Peek Word16 #

Store Word32 # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Word32 #

poke :: Word32 -> Poke () #

peek :: Peek Word32 #

Store Word64 # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Word64 #

poke :: Word64 -> Poke () #

peek :: Peek Word64 #

Store Exp # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Exp #

poke :: Exp -> Poke () #

peek :: Peek Exp #

Store Match # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Match #

poke :: Match -> Poke () #

peek :: Peek Match #

Store Clause # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Clause #

poke :: Clause -> Poke () #

peek :: Peek Clause #

Store Pat # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Pat #

poke :: Pat -> Poke () #

peek :: Peek Pat #

Store Type # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Type #

poke :: Type -> Poke () #

peek :: Peek Type #

Store Dec # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Dec #

poke :: Dec -> Poke () #

peek :: Peek Dec #

Store Name # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Name #

poke :: Name -> Poke () #

peek :: Peek Name #

Store FunDep # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size FunDep #

poke :: FunDep -> Poke () #

peek :: Peek FunDep #

Store InjectivityAnn # 
Instance details

Defined in Data.Store.Internal

Store Overlap # 
Instance details

Defined in Data.Store.Internal

Store DerivStrategy # 
Instance details

Defined in Data.Store.Internal

Store () # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size () #

poke :: () -> Poke () #

peek :: Peek () #

Store Void # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Void #

poke :: Void -> Poke () #

peek :: Peek Void #

Store All # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size All #

poke :: All -> Poke () #

peek :: Peek All #

Store Any # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Any #

poke :: Any -> Poke () #

peek :: Peek Any #

Store CChar # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CChar #

poke :: CChar -> Poke () #

peek :: Peek CChar #

Store CSChar # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CSChar #

poke :: CSChar -> Poke () #

peek :: Peek CSChar #

Store CUChar # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CUChar #

poke :: CUChar -> Poke () #

peek :: Peek CUChar #

Store CShort # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CShort #

poke :: CShort -> Poke () #

peek :: Peek CShort #

Store CUShort # 
Instance details

Defined in Data.Store.Internal

Store CInt # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CInt #

poke :: CInt -> Poke () #

peek :: Peek CInt #

Store CUInt # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CUInt #

poke :: CUInt -> Poke () #

peek :: Peek CUInt #

Store CLong # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CLong #

poke :: CLong -> Poke () #

peek :: Peek CLong #

Store CULong # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CULong #

poke :: CULong -> Poke () #

peek :: Peek CULong #

Store CLLong # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CLLong #

poke :: CLLong -> Poke () #

peek :: Peek CLLong #

Store CULLong # 
Instance details

Defined in Data.Store.Internal

Store CBool # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CBool #

poke :: CBool -> Poke () #

peek :: Peek CBool #

Store CFloat # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CFloat #

poke :: CFloat -> Poke () #

peek :: Peek CFloat #

Store CDouble # 
Instance details

Defined in Data.Store.Internal

Store CPtrdiff # 
Instance details

Defined in Data.Store.Internal

Store CSize # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CSize #

poke :: CSize -> Poke () #

peek :: Peek CSize #

Store CWchar # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CWchar #

poke :: CWchar -> Poke () #

peek :: Peek CWchar #

Store CSigAtomic # 
Instance details

Defined in Data.Store.Internal

Store CClock # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CClock #

poke :: CClock -> Poke () #

peek :: Peek CClock #

Store CTime # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size CTime #

poke :: CTime -> Poke () #

peek :: Peek CTime #

Store CUSeconds # 
Instance details

Defined in Data.Store.Internal

Store CSUSeconds # 
Instance details

Defined in Data.Store.Internal

Store CIntPtr # 
Instance details

Defined in Data.Store.Internal

Store CUIntPtr # 
Instance details

Defined in Data.Store.Internal

Store CIntMax # 
Instance details

Defined in Data.Store.Internal

Store CUIntMax # 
Instance details

Defined in Data.Store.Internal

Store WordPtr # 
Instance details

Defined in Data.Store.Internal

Store IntPtr # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size IntPtr #

poke :: IntPtr -> Poke () #

peek :: Peek IntPtr #

Store Fingerprint # 
Instance details

Defined in Data.Store.Internal

Store ShortByteString # 
Instance details

Defined in Data.Store.Internal

Store ByteString # 
Instance details

Defined in Data.Store.Internal

Store ByteString # 
Instance details

Defined in Data.Store.Internal

Store TimeSpec # 
Instance details

Defined in Data.Store.Internal

Store IntSet # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size IntSet #

poke :: IntSet -> Poke () #

peek :: Peek IntSet #

Store PortNumber # 
Instance details

Defined in Data.Store.Internal

Store ModName # 
Instance details

Defined in Data.Store.Internal

Store PkgName # 
Instance details

Defined in Data.Store.Internal

Store OccName # 
Instance details

Defined in Data.Store.Internal

Store NameFlavour # 
Instance details

Defined in Data.Store.Internal

Store NameSpace # 
Instance details

Defined in Data.Store.Internal

Store Info # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Info #

poke :: Info -> Poke () #

peek :: Peek Info #

Store Fixity # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Fixity #

poke :: Fixity -> Poke () #

peek :: Peek Fixity #

Store FixityDirection # 
Instance details

Defined in Data.Store.Internal

Store Lit # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Lit #

poke :: Lit -> Poke () #

peek :: Peek Lit #

Store Body # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Body #

poke :: Body -> Poke () #

peek :: Peek Body #

Store Guard # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Guard #

poke :: Guard -> Poke () #

peek :: Peek Guard #

Store Stmt # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Stmt #

poke :: Stmt -> Poke () #

peek :: Peek Stmt #

Store Range # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Range #

poke :: Range -> Poke () #

peek :: Peek Range #

Store DerivClause # 
Instance details

Defined in Data.Store.Internal

Store TypeFamilyHead # 
Instance details

Defined in Data.Store.Internal

Store TySynEqn # 
Instance details

Defined in Data.Store.Internal

Store Foreign # 
Instance details

Defined in Data.Store.Internal

Store Callconv # 
Instance details

Defined in Data.Store.Internal

Store Safety # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Safety #

poke :: Safety -> Poke () #

peek :: Peek Safety #

Store Pragma # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Pragma #

poke :: Pragma -> Poke () #

peek :: Peek Pragma #

Store Inline # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Inline #

poke :: Inline -> Poke () #

peek :: Peek Inline #

Store RuleMatch # 
Instance details

Defined in Data.Store.Internal

Store Phases # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Phases #

poke :: Phases -> Poke () #

peek :: Peek Phases #

Store RuleBndr # 
Instance details

Defined in Data.Store.Internal

Store AnnTarget # 
Instance details

Defined in Data.Store.Internal

Store SourceUnpackedness # 
Instance details

Defined in Data.Store.Internal

Store SourceStrictness # 
Instance details

Defined in Data.Store.Internal

Store Con # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Con #

poke :: Con -> Poke () #

peek :: Peek Con #

Store Bang # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Bang #

poke :: Bang -> Poke () #

peek :: Peek Bang #

Store PatSynDir # 
Instance details

Defined in Data.Store.Internal

Store PatSynArgs # 
Instance details

Defined in Data.Store.Internal

Store TyVarBndr # 
Instance details

Defined in Data.Store.Internal

Store FamilyResultSig # 
Instance details

Defined in Data.Store.Internal

Store TyLit # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size TyLit #

poke :: TyLit -> Poke () #

peek :: Peek TyLit #

Store Role # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Role #

poke :: Role -> Poke () #

peek :: Peek Role #

Store Text # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Text #

poke :: Text -> Poke () #

peek :: Peek Text #

Store UTCTime # 
Instance details

Defined in Data.Store.Internal

Store DiffTime # 
Instance details

Defined in Data.Store.Internal

Store Day # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size Day #

poke :: Day -> Poke () #

peek :: Peek Day #

Store TypeHash # 
Instance details

Defined in Data.Store.TypeHash.Internal

Store StoreVersion # 
Instance details

Defined in Data.Store.Version

Deriver (Store a) # 
Instance details

Defined in Data.Store.TH.Internal

Methods

runDeriver :: Proxy (Store a) -> Cxt -> Type -> Q [Dec] #

Store a => Store [a] # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size [a] #

poke :: [a] -> Poke () #

peek :: Peek [a] #

Store a => Store (Maybe a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Maybe a) #

poke :: Maybe a -> Poke () #

peek :: Peek (Maybe a) #

Store a => Store (Ratio a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Ratio a) #

poke :: Ratio a -> Poke () #

peek :: Peek (Ratio a) #

Store (StablePtr a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (StablePtr a) #

poke :: StablePtr a -> Poke () #

peek :: Peek (StablePtr a) #

Store (Ptr a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Ptr a) #

poke :: Ptr a -> Poke () #

peek :: Peek (Ptr a) #

Store (FunPtr a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (FunPtr a) #

poke :: FunPtr a -> Poke () #

peek :: Peek (FunPtr a) #

Storable a => Store (Complex a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Complex a) #

poke :: Complex a -> Poke () #

peek :: Peek (Complex a) #

Store (Fixed a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Fixed a) #

poke :: Fixed a -> Poke () #

peek :: Peek (Fixed a) #

Storable a => Store (Identity a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Identity a) #

poke :: Identity a -> Poke () #

peek :: Peek (Identity a) #

Store a => Store (First a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (First a) #

poke :: First a -> Poke () #

peek :: Peek (First a) #

Store a => Store (Last a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Last a) #

poke :: Last a -> Poke () #

peek :: Peek (Last a) #

Store a => Store (Dual a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Dual a) #

poke :: Dual a -> Poke () #

peek :: Peek (Dual a) #

Store a => Store (Sum a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Sum a) #

poke :: Sum a -> Poke () #

peek :: Peek (Sum a) #

Store a => Store (Product a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Product a) #

poke :: Product a -> Poke () #

peek :: Peek (Product a) #

Store a => Store (NonEmpty a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (NonEmpty a) #

poke :: NonEmpty a -> Poke () #

peek :: Peek (NonEmpty a) #

Store a => Store (IntMap a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (IntMap a) #

poke :: IntMap a -> Poke () #

peek :: Peek (IntMap a) #

Store a => Store (Seq a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Seq a) #

poke :: Seq a -> Poke () #

peek :: Peek (Seq a) #

(Store a, Ord a) => Store (Set a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Set a) #

poke :: Set a -> Poke () #

peek :: Peek (Set a) #

Prim a => Store (PrimStorable a) # 
Instance details

Defined in Data.Store.Internal

(Eq a, Hashable a, Store a) => Store (HashSet a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (HashSet a) #

poke :: HashSet a -> Poke () #

peek :: Peek (HashSet a) #

Store (Vector Bool) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Bool) #

poke :: Vector Bool -> Poke () #

peek :: Peek (Vector Bool) #

Store (Vector Char) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Char) #

poke :: Vector Char -> Poke () #

peek :: Peek (Vector Char) #

Store (Vector Double) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Float) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Int) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Int) #

poke :: Vector Int -> Poke () #

peek :: Peek (Vector Int) #

Store (Vector Int8) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Int8) #

poke :: Vector Int8 -> Poke () #

peek :: Peek (Vector Int8) #

Store (Vector Int16) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Int32) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Int64) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Word) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Word) #

poke :: Vector Word -> Poke () #

peek :: Peek (Vector Word) #

Store (Vector Word8) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Word16) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Word32) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Word64) # 
Instance details

Defined in Data.Store.Internal

Store (Vector ()) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector ()) #

poke :: Vector () -> Poke () #

peek :: Peek (Vector ()) #

(Store (Vector a), Store (Vector b)) => Store (Vector (a, b)) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector (a, b)) #

poke :: Vector (a, b) -> Poke () #

peek :: Peek (Vector (a, b)) #

(Store (Vector a), Store (Vector b), Store (Vector c)) => Store (Vector (a, b, c)) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector (a, b, c)) #

poke :: Vector (a, b, c) -> Poke () #

peek :: Peek (Vector (a, b, c)) #

(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d)) => Store (Vector (a, b, c, d)) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector (a, b, c, d)) #

poke :: Vector (a, b, c, d) -> Poke () #

peek :: Peek (Vector (a, b, c, d)) #

(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d), Store (Vector e)) => Store (Vector (a, b, c, d, e)) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector (a, b, c, d, e)) #

poke :: Vector (a, b, c, d, e) -> Poke () #

peek :: Peek (Vector (a, b, c, d, e)) #

(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d), Store (Vector e), Store (Vector f)) => Store (Vector (a, b, c, d, e, f)) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector (a, b, c, d, e, f)) #

poke :: Vector (a, b, c, d, e, f) -> Poke () #

peek :: Peek (Vector (a, b, c, d, e, f)) #

Store (Vector a) => Store (Vector (Complex a)) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector (Complex a)) #

poke :: Vector (Complex a) -> Poke () #

peek :: Peek (Vector (Complex a)) #

Storable a => Store (Vector a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector a) #

poke :: Vector a -> Poke () #

peek :: Peek (Vector a) #

Store (Vector Char) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Char) #

poke :: Vector Char -> Poke () #

peek :: Peek (Vector Char) #

Store (Vector Double) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Float) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Int) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Int) #

poke :: Vector Int -> Poke () #

peek :: Peek (Vector Int) #

Store (Vector Int8) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Int8) #

poke :: Vector Int8 -> Poke () #

peek :: Peek (Vector Int8) #

Store (Vector Int16) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Int32) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Int64) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Word) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Word) #

poke :: Vector Word -> Poke () #

peek :: Peek (Vector Word) #

Store (Vector Word8) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Word16) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Word32) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Word64) # 
Instance details

Defined in Data.Store.Internal

Store (Vector (Ptr a)) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector (Ptr a)) #

poke :: Vector (Ptr a) -> Poke () #

peek :: Peek (Vector (Ptr a)) #

Store (Vector (FunPtr a)) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector (FunPtr a)) #

poke :: Vector (FunPtr a) -> Poke () #

peek :: Peek (Vector (FunPtr a)) #

Store (Vector CDev) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector CDev) #

poke :: Vector CDev -> Poke () #

peek :: Peek (Vector CDev) #

Store (Vector CIno) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector CIno) #

poke :: Vector CIno -> Poke () #

peek :: Peek (Vector CIno) #

Store (Vector CMode) # 
Instance details

Defined in Data.Store.Internal

Store (Vector COff) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector COff) #

poke :: Vector COff -> Poke () #

peek :: Peek (Vector COff) #

Store (Vector CPid) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector CPid) #

poke :: Vector CPid -> Poke () #

peek :: Peek (Vector CPid) #

Store (Vector CSsize) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CGid) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector CGid) #

poke :: Vector CGid -> Poke () #

peek :: Peek (Vector CGid) #

Store (Vector CNlink) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CUid) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector CUid) #

poke :: Vector CUid -> Poke () #

peek :: Peek (Vector CUid) #

Store (Vector CCc) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector CCc) #

poke :: Vector CCc -> Poke () #

peek :: Peek (Vector CCc) #

Store (Vector CSpeed) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CTcflag) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CRLim) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CBlkSize) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CBlkCnt) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CClockId) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CFsBlkCnt) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CFsFilCnt) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CId) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector CId) #

poke :: Vector CId -> Poke () #

peek :: Peek (Vector CId) #

Store (Vector CKey) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector CKey) #

poke :: Vector CKey -> Poke () #

peek :: Peek (Vector CKey) #

Store (Vector CTimer) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Fd) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Fd) #

poke :: Vector Fd -> Poke () #

peek :: Peek (Vector Fd) #

Store (Vector CChar) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CSChar) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CUChar) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CShort) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CUShort) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CInt) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector CInt) #

poke :: Vector CInt -> Poke () #

peek :: Peek (Vector CInt) #

Store (Vector CUInt) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CLong) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CULong) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CLLong) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CULLong) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CBool) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CFloat) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CDouble) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CPtrdiff) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CSize) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CWchar) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CSigAtomic) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CClock) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CTime) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CUSeconds) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CSUSeconds) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CIntPtr) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CUIntPtr) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CIntMax) # 
Instance details

Defined in Data.Store.Internal

Store (Vector CUIntMax) # 
Instance details

Defined in Data.Store.Internal

Store (Vector Addr) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector Addr) #

poke :: Vector Addr -> Poke () #

peek :: Peek (Vector Addr) #

Store a => Store (Vector a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Vector a) #

poke :: Vector a -> Poke () #

peek :: Peek (Vector a) #

(Store a, HasTypeHash a) => Store (Tagged a) # 
Instance details

Defined in Data.Store.TypeHash.Internal

Methods

size :: Size (Tagged a) #

poke :: Tagged a -> Poke () #

peek :: Peek (Tagged a) #

(Store a, Store b) => Store (Either a b) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Either a b) #

poke :: Either a b -> Poke () #

peek :: Peek (Either a b) #

(Store a, Store b) => Store (a, b) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (a, b) #

poke :: (a, b) -> Poke () #

peek :: Peek (a, b) #

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

Defined in Data.Store.Internal

Methods

size :: Size (UArray i e) #

poke :: UArray i e -> Poke () #

peek :: Peek (UArray i e) #

(Ix i, Store i, Store e) => Store (Array i e) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Array i e) #

poke :: Array i e -> Poke () #

peek :: Peek (Array i e) #

(Ord k, Store k, Store a) => Store (Map k a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Map k a) #

poke :: Map k a -> Poke () #

peek :: Peek (Map k a) #

(Eq k, Hashable k, Store k, Store a) => Store (HashMap k a) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (HashMap k a) #

poke :: HashMap k a -> Poke () #

peek :: Peek (HashMap k a) #

KnownNat n => Store (StaticSize n ByteString) # 
Instance details

Defined in Data.Store.Internal

(Store a, Store b, Store c) => Store (a, b, c) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (a, b, c) #

poke :: (a, b, c) -> Poke () #

peek :: Peek (a, b, c) #

Storable a => Store (Const a b) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (Const a b) #

poke :: Const a b -> Poke () #

peek :: Peek (Const a b) #

(Store a, Store b, Store c, Store d) => Store (a, b, c, d) # 
Instance details

Defined in Data.Store.Internal

Methods

size :: Size (a, b, c, d) #

poke :: (a, b, c, d) -> Poke () #

peek :: Peek (a, b, c, d) #

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

Defined in Data.Store.Internal

Methods

size :: Size (a, b, c, d, e) #

poke :: (a, b, c, d, e) -> Poke () #

peek :: Peek (a, b, c, d, e) #

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

Defined in Data.Store.Internal

Methods

size :: Size (a, b, c, d, e, f) #

poke :: (a, b, c, d, e, f) -> Poke () #

peek :: Peek (a, b, c, d, e, f) #

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

Defined in Data.Store.Internal

Methods

size :: Size (a, b, c, d, e, f, g) #

poke :: (a, b, c, d, e, f, g) -> Poke () #

peek :: Peek (a, b, c, d, e, f, g) #

data Poke a #

Poke actions are useful for building sequential serializers.

They are actions which write values to bytes into memory specified by a Ptr base. The Applicative and Monad instances make it easy to write serializations, by keeping track of the Offset of the current byte. They allow you to chain Poke action such that subsequent Pokes write into subsequent portions of the output.

Instances
Monad Poke 
Instance details

Defined in Data.Store.Core

Methods

(>>=) :: Poke a -> (a -> Poke b) -> Poke b #

(>>) :: Poke a -> Poke b -> Poke b #

return :: a -> Poke a #

fail :: String -> Poke a #

Functor Poke 
Instance details

Defined in Data.Store.Core

Methods

fmap :: (a -> b) -> Poke a -> Poke b #

(<$) :: a -> Poke b -> Poke a #

MonadFail Poke 
Instance details

Defined in Data.Store.Core

Methods

fail :: String -> Poke a #

Applicative Poke 
Instance details

Defined in Data.Store.Core

Methods

pure :: a -> Poke a #

(<*>) :: Poke (a -> b) -> Poke a -> Poke b #

liftA2 :: (a -> b -> c) -> Poke a -> Poke b -> Poke c #

(*>) :: Poke a -> Poke b -> Poke b #

(<*) :: Poke a -> Poke b -> Poke a #

MonadIO Poke 
Instance details

Defined in Data.Store.Core

Methods

liftIO :: IO a -> Poke a #

data Peek a #

Peek actions are useful for building sequential deserializers.

They are actions which read from memory and construct values from it. The Applicative and Monad instances make it easy to chain these together to get more complicated deserializers. This machinery keeps track of the current Ptr and end-of-buffer Ptr.

Instances
Monad Peek 
Instance details

Defined in Data.Store.Core

Methods

(>>=) :: Peek a -> (a -> Peek b) -> Peek b #

(>>) :: Peek a -> Peek b -> Peek b #

return :: a -> Peek a #

fail :: String -> Peek a #

Functor Peek 
Instance details

Defined in Data.Store.Core

Methods

fmap :: (a -> b) -> Peek a -> Peek b #

(<$) :: a -> Peek b -> Peek a #

MonadFail Peek 
Instance details

Defined in Data.Store.Core

Methods

fail :: String -> Peek a #

Applicative Peek 
Instance details

Defined in Data.Store.Core

Methods

pure :: a -> Peek a #

(<*>) :: Peek (a -> b) -> Peek a -> Peek b #

liftA2 :: (a -> b -> c) -> Peek a -> Peek b -> Peek c #

(*>) :: Peek a -> Peek b -> Peek b #

(<*) :: Peek a -> Peek b -> Peek a #

MonadIO Peek 
Instance details

Defined in Data.Store.Core

Methods

liftIO :: IO a -> Peek a #

PrimMonad Peek 
Instance details

Defined in Data.Store.Core

Associated Types

type PrimState Peek :: * #

Methods

primitive :: (State# (PrimState Peek) -> (#State# (PrimState Peek), a#)) -> Peek a #

type PrimState Peek 
Instance details

Defined in Data.Store.Core

runPeek :: Peek a -> PeekState -> Ptr Word8 -> IO (PeekResult a) #

Run the Peek action, with a Ptr to the end of the buffer where data is poked, and a Ptr to the current position. The result is the Ptr, along with a return value.

May throw a PeekException if the memory contains invalid values.

Exceptions thrown by Poke

data PokeException #

Exception thrown while running poke. Note that other types of exceptions could also be thrown. Invocations of fail in the Poke monad causes this exception to be thrown.

PokeExceptions are not expected to occur in ordinary circumstances, and usually indicate a programming error.

pokeException :: Text -> Poke a #

Throws a PokeException. These should be avoided when possible, they usually indicate a programming error.

Exceptions thrown by Peek

data PeekException #

Exception thrown while running peek. Note that other types of exceptions can also be thrown. Invocations of fail in the Poke monad causes this exception to be thrown.

PeekException is thrown when the data being decoded is invalid.

tooManyBytes :: Int -> Int -> String -> IO void #

Throws a PeekException about an attempt to read too many bytes.

Size type

data Size a #

Info about a type's serialized length. Either the length is known independently of the value, or the length depends on the value.

Constructors

VarSize (a -> Int) 
ConstSize !Int 
Instances
Contravariant Size # 
Instance details

Defined in Data.Store.Impl

Methods

contramap :: (a -> b) -> Size b -> Size a #

(>$) :: b -> Size b -> Size a #

getSize :: Store a => a -> Int #

Get the number of bytes needed to store the given value. See size.

getSizeWith :: Size a -> a -> Int #

Given a Size value and a value of the type a, returns its Int size.

combineSize :: forall a b c. (Store a, Store b) => (c -> a) -> (c -> b) -> Size c #

Create an aggregate Size by providing functions to split the input into two pieces.

If both of the types are ConstSize, the result is ConstSize and the functions will not be used.

combineSizeWith :: forall a b c. (c -> a) -> (c -> b) -> Size a -> Size b -> Size c #

Create an aggregate Size by providing functions to split the input into two pieces, as well as Size values to use to measure the results.

If both of the input Size values are ConstSize, the result is ConstSize and the functions will not be used.

addSize :: Int -> Size a -> Size a #

Adds a constant amount to a Size value.

Store instances in terms of IsSequence

sizeSequence :: forall t. (IsSequence t, Store (Element t)) => Size t #

Implement size for an IsSequence of Store instances.

Note that many monomorphic containers have more efficient implementations (for example, via memcpy).

pokeSequence :: (IsSequence t, Store (Element t)) => t -> Poke () #

Implement poke for an IsSequence of Store instances.

Note that many monomorphic containers have more efficient implementations (for example, via memcpy).

peekSequence :: (IsSequence t, Store (Element t), Index t ~ Int) => Peek t #

Implement peek for an IsSequence of Store instances.

Note that many monomorphic containers have more efficient implementations (for example, via memcpy).

Store instances in terms of IsSet

sizeSet :: forall t. (IsSet t, Store (Element t)) => Size t #

Implement size for an IsSet of Store instances.

pokeSet :: (IsSet t, Store (Element t)) => t -> Poke () #

Implement poke for an IsSequence of Store instances.

peekSet :: (IsSet t, Store (Element t)) => Peek t #

Implement peek for an IsSequence of Store instances.

Store instances in terms of IsMap

sizeMap :: forall t. (Store (ContainerKey t), Store (MapValue t), IsMap t) => Size t #

Implement size for an IsMap of where both ContainerKey and MapValue are Store instances.

pokeMap :: (Store (ContainerKey t), Store (MapValue t), IsMap t) => t -> Poke () #

Implement poke for an IsMap of where both ContainerKey and MapValue are Store instances.

peekMap :: (Store (ContainerKey t), Store (MapValue t), IsMap t) => Peek t #

Implement peek for an IsMap of where both ContainerKey and MapValue are Store instances.

Utilities for ordered maps

sizeOrdMap :: forall t. (Store (ContainerKey t), Store (MapValue t), IsMap t) => Size t #

Like sizeMap but should only be used for ordered containers where mapToList returns an ascending list.

pokeOrdMap :: (Store (ContainerKey t), Store (MapValue t), IsMap t) => t -> Poke () #

Like pokeMap but should only be used for ordered containers where mapToList returns an ascending list.

peekOrdMapWith #

Arguments

:: (Store (ContainerKey t), Store (MapValue t)) 
=> ([(ContainerKey t, MapValue t)] -> t)

A function to construct the map from an ascending list such as fromDistinctAscList.

-> Peek t 

Decode the results of pokeOrdMap using a given function to construct the map.

Store instances in terms of IArray

sizeArray :: (Ix i, IArray a e, Store i, Store e) => Size (a i e) #

pokeArray :: (Ix i, IArray a e, Store i, Store e) => a i e -> Poke () #

peekArray :: (Ix i, IArray a e, Store i, Store e) => Peek (a i e) #

Store instances in terms of Generic

class GStoreSize f #

Minimal complete definition

gsize

Instances
GStoreSize (V1 :: * -> *) # 
Instance details

Defined in Data.Store.Impl

Methods

gsize :: Size (V1 a)

GStoreSize (U1 :: * -> *) # 
Instance details

Defined in Data.Store.Impl

Methods

gsize :: Size (U1 a)

Store a => GStoreSize (K1 i a :: * -> *) # 
Instance details

Defined in Data.Store.Impl

Methods

gsize :: Size (K1 i a a0)

(SumArity (a :+: b) <= 255, GStoreSizeSum 0 (a :+: b)) => GStoreSize (a :+: b) # 
Instance details

Defined in Data.Store.Impl

Methods

gsize :: Size ((a :+: b) a0)

(GStoreSize a, GStoreSize b) => GStoreSize (a :*: b) # 
Instance details

Defined in Data.Store.Impl

Methods

gsize :: Size ((a :*: b) a0)

GStoreSize f => GStoreSize (M1 i c f) # 
Instance details

Defined in Data.Store.Impl

Methods

gsize :: Size (M1 i c f a)

class GStorePoke f #

Minimal complete definition

gpoke

Instances
GStorePoke (V1 :: * -> *) # 
Instance details

Defined in Data.Store.Impl

Methods

gpoke :: V1 a -> Poke ()

GStorePoke (U1 :: * -> *) # 
Instance details

Defined in Data.Store.Impl

Methods

gpoke :: U1 a -> Poke ()

Store a => GStorePoke (K1 i a :: * -> *) # 
Instance details

Defined in Data.Store.Impl

Methods

gpoke :: K1 i a a0 -> Poke ()

(SumArity (a :+: b) <= 255, GStorePokeSum 0 (a :+: b)) => GStorePoke (a :+: b) # 
Instance details

Defined in Data.Store.Impl

Methods

gpoke :: (a :+: b) a0 -> Poke ()

(GStorePoke a, GStorePoke b) => GStorePoke (a :*: b) # 
Instance details

Defined in Data.Store.Impl

Methods

gpoke :: (a :*: b) a0 -> Poke ()

GStorePoke f => GStorePoke (M1 i c f) # 
Instance details

Defined in Data.Store.Impl

Methods

gpoke :: M1 i c f a -> Poke ()

genericPoke :: (Generic a, GStorePoke (Rep a)) => a -> Poke () #

class GStorePeek f #

Minimal complete definition

gpeek

Instances
GStorePeek (V1 :: * -> *) # 
Instance details

Defined in Data.Store.Impl

Methods

gpeek :: Peek (V1 a)

GStorePeek (U1 :: * -> *) # 
Instance details

Defined in Data.Store.Impl

Methods

gpeek :: Peek (U1 a)

Store a => GStorePeek (K1 i a :: * -> *) # 
Instance details

Defined in Data.Store.Impl

Methods

gpeek :: Peek (K1 i a a0)

(SumArity (a :+: b) <= 255, GStorePeekSum 0 (a :+: b)) => GStorePeek (a :+: b) # 
Instance details

Defined in Data.Store.Impl

Methods

gpeek :: Peek ((a :+: b) a0)

(GStorePeek a, GStorePeek b) => GStorePeek (a :*: b) # 
Instance details

Defined in Data.Store.Impl

Methods

gpeek :: Peek ((a :*: b) a0)

GStorePeek f => GStorePeek (M1 i c f) # 
Instance details

Defined in Data.Store.Impl

Methods

gpeek :: Peek (M1 i c f a)

Peek utilities

skip :: Int -> Peek () #

Skip n bytes forward.

isolate :: Int -> Peek a -> Peek a #

Isolate the input to n bytes, skipping n bytes forward. Fails if m advances the offset beyond the isolated region.

peekMagic :: (Eq a, Show a, Store a) => String -> a -> Peek () #

Ensure the presence of a given magic value.

Throws a PeekException if the value isn't present.

Static Size type

class KnownNat n => IsStaticSize n a where #

Minimal complete definition

toStaticSize

Methods

toStaticSize :: a -> Maybe (StaticSize n a) #

Instances
KnownNat n => IsStaticSize n ByteString # 
Instance details

Defined in Data.Store.Internal

newtype StaticSize (n :: Nat) a #

Constructors

StaticSize 

Fields

Instances
Eq a => Eq (StaticSize n a) # 
Instance details

Defined in Data.Store.Internal

Methods

(==) :: StaticSize n a -> StaticSize n a -> Bool #

(/=) :: StaticSize n a -> StaticSize n a -> Bool #

(KnownNat n, Data a) => Data (StaticSize n a) # 
Instance details

Defined in Data.Store.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> StaticSize n a -> c (StaticSize n a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (StaticSize n a) #

toConstr :: StaticSize n a -> Constr #

dataTypeOf :: StaticSize n a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (StaticSize n a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (StaticSize n a)) #

gmapT :: (forall b. Data b => b -> b) -> StaticSize n a -> StaticSize n a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> StaticSize n a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> StaticSize n a -> r #

gmapQ :: (forall d. Data d => d -> u) -> StaticSize n a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> StaticSize n a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> StaticSize n a -> m (StaticSize n a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> StaticSize n a -> m (StaticSize n a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> StaticSize n a -> m (StaticSize n a) #

Ord a => Ord (StaticSize n a) # 
Instance details

Defined in Data.Store.Internal

Methods

compare :: StaticSize n a -> StaticSize n a -> Ordering #

(<) :: StaticSize n a -> StaticSize n a -> Bool #

(<=) :: StaticSize n a -> StaticSize n a -> Bool #

(>) :: StaticSize n a -> StaticSize n a -> Bool #

(>=) :: StaticSize n a -> StaticSize n a -> Bool #

max :: StaticSize n a -> StaticSize n a -> StaticSize n a #

min :: StaticSize n a -> StaticSize n a -> StaticSize n a #

Show a => Show (StaticSize n a) # 
Instance details

Defined in Data.Store.Internal

Methods

showsPrec :: Int -> StaticSize n a -> ShowS #

show :: StaticSize n a -> String #

showList :: [StaticSize n a] -> ShowS #

Generic (StaticSize n a) # 
Instance details

Defined in Data.Store.Internal

Associated Types

type Rep (StaticSize n a) :: * -> * #

Methods

from :: StaticSize n a -> Rep (StaticSize n a) x #

to :: Rep (StaticSize n a) x -> StaticSize n a #

NFData a => NFData (StaticSize n a) # 
Instance details

Defined in Data.Store.Internal

Methods

rnf :: StaticSize n a -> () #

KnownNat n => Store (StaticSize n ByteString) # 
Instance details

Defined in Data.Store.Internal

type Rep (StaticSize n a) # 
Instance details

Defined in Data.Store.Internal

type Rep (StaticSize n a) = D1 (MetaData "StaticSize" "Data.Store.Internal" "store-0.5.0.1-B2ehA7FIgD86dTp1gMiGUp" True) (C1 (MetaCons "StaticSize" PrefixI True) (S1 (MetaSel (Just "unStaticSize") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)))

liftStaticSize :: forall n a. (KnownNat n, Lift a) => TypeQ -> StaticSize n a -> ExpQ #

Orphan instances

Store Bool # 
Instance details

Methods

size :: Size Bool #

poke :: Bool -> Poke () #

peek :: Peek Bool #

Store Char # 
Instance details

Methods

size :: Size Char #

poke :: Char -> Poke () #

peek :: Peek Char #

Store Double # 
Instance details

Methods

size :: Size Double #

poke :: Double -> Poke () #

peek :: Peek Double #

Store Float # 
Instance details

Methods

size :: Size Float #

poke :: Float -> Poke () #

peek :: Peek Float #

Store Int # 
Instance details

Methods

size :: Size Int #

poke :: Int -> Poke () #

peek :: Peek Int #

Store Int8 # 
Instance details

Methods

size :: Size Int8 #

poke :: Int8 -> Poke () #

peek :: Peek Int8 #

Store Int16 # 
Instance details

Methods

size :: Size Int16 #

poke :: Int16 -> Poke () #

peek :: Peek Int16 #

Store Int32 # 
Instance details

Methods

size :: Size Int32 #

poke :: Int32 -> Poke () #

peek :: Peek Int32 #

Store Int64 # 
Instance details

Methods

size :: Size Int64 #

poke :: Int64 -> Poke () #

peek :: Peek Int64 #

Store Integer # 
Instance details

Store Word # 
Instance details

Methods

size :: Size Word #

poke :: Word -> Poke () #

peek :: Peek Word #

Store Word8 # 
Instance details

Methods

size :: Size Word8 #

poke :: Word8 -> Poke () #

peek :: Peek Word8 #

Store Word16 # 
Instance details

Methods

size :: Size Word16 #

poke :: Word16 -> Poke () #

peek :: Peek Word16 #

Store Word32 # 
Instance details

Methods

size :: Size Word32 #

poke :: Word32 -> Poke () #

peek :: Peek Word32 #

Store Word64 # 
Instance details

Methods

size :: Size Word64 #

poke :: Word64 -> Poke () #

peek :: Peek Word64 #

Store Exp # 
Instance details

Methods

size :: Size Exp #

poke :: Exp -> Poke () #

peek :: Peek Exp #

Store Match # 
Instance details

Methods

size :: Size Match #

poke :: Match -> Poke () #

peek :: Peek Match #

Store Clause # 
Instance details

Methods

size :: Size Clause #

poke :: Clause -> Poke () #

peek :: Peek Clause #

Store Pat # 
Instance details

Methods

size :: Size Pat #

poke :: Pat -> Poke () #

peek :: Peek Pat #

Store Type # 
Instance details

Methods

size :: Size Type #

poke :: Type -> Poke () #

peek :: Peek Type #

Store Dec # 
Instance details

Methods

size :: Size Dec #

poke :: Dec -> Poke () #

peek :: Peek Dec #

Store Name # 
Instance details

Methods

size :: Size Name #

poke :: Name -> Poke () #

peek :: Peek Name #

Store FunDep # 
Instance details

Methods

size :: Size FunDep #

poke :: FunDep -> Poke () #

peek :: Peek FunDep #

Store InjectivityAnn # 
Instance details

Store Overlap # 
Instance details

Store DerivStrategy # 
Instance details

Store () # 
Instance details

Methods

size :: Size () #

poke :: () -> Poke () #

peek :: Peek () #

Store Void # 
Instance details

Methods

size :: Size Void #

poke :: Void -> Poke () #

peek :: Peek Void #

Store All # 
Instance details

Methods

size :: Size All #

poke :: All -> Poke () #

peek :: Peek All #

Store Any # 
Instance details

Methods

size :: Size Any #

poke :: Any -> Poke () #

peek :: Peek Any #

Store CChar # 
Instance details

Methods

size :: Size CChar #

poke :: CChar -> Poke () #

peek :: Peek CChar #

Store CSChar # 
Instance details

Methods

size :: Size CSChar #

poke :: CSChar -> Poke () #

peek :: Peek CSChar #

Store CUChar # 
Instance details

Methods

size :: Size CUChar #

poke :: CUChar -> Poke () #

peek :: Peek CUChar #

Store CShort # 
Instance details

Methods

size :: Size CShort #

poke :: CShort -> Poke () #

peek :: Peek CShort #

Store CUShort # 
Instance details

Store CInt # 
Instance details

Methods

size :: Size CInt #

poke :: CInt -> Poke () #

peek :: Peek CInt #

Store CUInt # 
Instance details

Methods

size :: Size CUInt #

poke :: CUInt -> Poke () #

peek :: Peek CUInt #

Store CLong # 
Instance details

Methods

size :: Size CLong #

poke :: CLong -> Poke () #

peek :: Peek CLong #

Store CULong # 
Instance details

Methods

size :: Size CULong #

poke :: CULong -> Poke () #

peek :: Peek CULong #

Store CLLong # 
Instance details

Methods

size :: Size CLLong #

poke :: CLLong -> Poke () #

peek :: Peek CLLong #

Store CULLong # 
Instance details

Store CBool # 
Instance details

Methods

size :: Size CBool #

poke :: CBool -> Poke () #

peek :: Peek CBool #

Store CFloat # 
Instance details

Methods

size :: Size CFloat #

poke :: CFloat -> Poke () #

peek :: Peek CFloat #

Store CDouble # 
Instance details

Store CPtrdiff # 
Instance details

Store CSize # 
Instance details

Methods

size :: Size CSize #

poke :: CSize -> Poke () #

peek :: Peek CSize #

Store CWchar # 
Instance details

Methods

size :: Size CWchar #

poke :: CWchar -> Poke () #

peek :: Peek CWchar #

Store CSigAtomic # 
Instance details

Store CClock # 
Instance details

Methods

size :: Size CClock #

poke :: CClock -> Poke () #

peek :: Peek CClock #

Store CTime # 
Instance details

Methods

size :: Size CTime #

poke :: CTime -> Poke () #

peek :: Peek CTime #

Store CUSeconds # 
Instance details

Store CSUSeconds # 
Instance details

Store CIntPtr # 
Instance details

Store CUIntPtr # 
Instance details

Store CIntMax # 
Instance details

Store CUIntMax # 
Instance details

Store WordPtr # 
Instance details

Store IntPtr # 
Instance details

Methods

size :: Size IntPtr #

poke :: IntPtr -> Poke () #

peek :: Peek IntPtr #

Store Fingerprint # 
Instance details

Store ShortByteString # 
Instance details

Store ByteString # 
Instance details

Store ByteString # 
Instance details

Store TimeSpec # 
Instance details

Store IntSet # 
Instance details

Methods

size :: Size IntSet #

poke :: IntSet -> Poke () #

peek :: Peek IntSet #

Store PortNumber # 
Instance details

Store ModName # 
Instance details

Store PkgName # 
Instance details

Store OccName # 
Instance details

Store NameFlavour # 
Instance details

Store NameSpace # 
Instance details

Store Info # 
Instance details

Methods

size :: Size Info #

poke :: Info -> Poke () #

peek :: Peek Info #

Store Fixity # 
Instance details

Methods

size :: Size Fixity #

poke :: Fixity -> Poke () #

peek :: Peek Fixity #

Store FixityDirection # 
Instance details

Store Lit # 
Instance details

Methods

size :: Size Lit #

poke :: Lit -> Poke () #

peek :: Peek Lit #

Store Body # 
Instance details

Methods

size :: Size Body #

poke :: Body -> Poke () #

peek :: Peek Body #

Store Guard # 
Instance details

Methods

size :: Size Guard #

poke :: Guard -> Poke () #

peek :: Peek Guard #

Store Stmt # 
Instance details

Methods

size :: Size Stmt #

poke :: Stmt -> Poke () #

peek :: Peek Stmt #

Store Range # 
Instance details

Methods

size :: Size Range #

poke :: Range -> Poke () #

peek :: Peek Range #

Store DerivClause # 
Instance details

Store TypeFamilyHead # 
Instance details

Store TySynEqn # 
Instance details

Store Foreign # 
Instance details

Store Callconv # 
Instance details

Store Safety # 
Instance details

Methods

size :: Size Safety #

poke :: Safety -> Poke () #

peek :: Peek Safety #

Store Pragma # 
Instance details

Methods

size :: Size Pragma #

poke :: Pragma -> Poke () #

peek :: Peek Pragma #

Store Inline # 
Instance details

Methods

size :: Size Inline #

poke :: Inline -> Poke () #

peek :: Peek Inline #

Store RuleMatch # 
Instance details

Store Phases # 
Instance details

Methods

size :: Size Phases #

poke :: Phases -> Poke () #

peek :: Peek Phases #

Store RuleBndr # 
Instance details

Store AnnTarget # 
Instance details

Store SourceUnpackedness # 
Instance details

Store SourceStrictness # 
Instance details

Store Con # 
Instance details

Methods

size :: Size Con #

poke :: Con -> Poke () #

peek :: Peek Con #

Store Bang # 
Instance details

Methods

size :: Size Bang #

poke :: Bang -> Poke () #

peek :: Peek Bang #

Store PatSynDir # 
Instance details

Store PatSynArgs # 
Instance details

Store TyVarBndr # 
Instance details

Store FamilyResultSig # 
Instance details

Store TyLit # 
Instance details

Methods

size :: Size TyLit #

poke :: TyLit -> Poke () #

peek :: Peek TyLit #

Store Role # 
Instance details

Methods

size :: Size Role #

poke :: Role -> Poke () #

peek :: Peek Role #

Store Text # 
Instance details

Methods

size :: Size Text #

poke :: Text -> Poke () #

peek :: Peek Text #

Store UTCTime # 
Instance details

Store DiffTime # 
Instance details

Store Day # 
Instance details

Methods

size :: Size Day #

poke :: Day -> Poke () #

peek :: Peek Day #

Store a => Store [a] # 
Instance details

Methods

size :: Size [a] #

poke :: [a] -> Poke () #

peek :: Peek [a] #

Store a => Store (Maybe a) # 
Instance details

Methods

size :: Size (Maybe a) #

poke :: Maybe a -> Poke () #

peek :: Peek (Maybe a) #

Store a => Store (Ratio a) # 
Instance details

Methods

size :: Size (Ratio a) #

poke :: Ratio a -> Poke () #

peek :: Peek (Ratio a) #

Store (StablePtr a) # 
Instance details

Methods

size :: Size (StablePtr a) #

poke :: StablePtr a -> Poke () #

peek :: Peek (StablePtr a) #

Store (Ptr a) # 
Instance details

Methods

size :: Size (Ptr a) #

poke :: Ptr a -> Poke () #

peek :: Peek (Ptr a) #

Store (FunPtr a) # 
Instance details

Methods

size :: Size (FunPtr a) #

poke :: FunPtr a -> Poke () #

peek :: Peek (FunPtr a) #

Storable a => Store (Complex a) # 
Instance details

Methods

size :: Size (Complex a) #

poke :: Complex a -> Poke () #

peek :: Peek (Complex a) #

Store (Fixed a) # 
Instance details

Methods

size :: Size (Fixed a) #

poke :: Fixed a -> Poke () #

peek :: Peek (Fixed a) #

Storable a => Store (Identity a) # 
Instance details

Methods

size :: Size (Identity a) #

poke :: Identity a -> Poke () #

peek :: Peek (Identity a) #

Store a => Store (First a) # 
Instance details

Methods

size :: Size (First a) #

poke :: First a -> Poke () #

peek :: Peek (First a) #

Store a => Store (Last a) # 
Instance details

Methods

size :: Size (Last a) #

poke :: Last a -> Poke () #

peek :: Peek (Last a) #

Store a => Store (Dual a) # 
Instance details

Methods

size :: Size (Dual a) #

poke :: Dual a -> Poke () #

peek :: Peek (Dual a) #

Store a => Store (Sum a) # 
Instance details

Methods

size :: Size (Sum a) #

poke :: Sum a -> Poke () #

peek :: Peek (Sum a) #

Store a => Store (Product a) # 
Instance details

Methods

size :: Size (Product a) #

poke :: Product a -> Poke () #

peek :: Peek (Product a) #

Store a => Store (NonEmpty a) # 
Instance details

Methods

size :: Size (NonEmpty a) #

poke :: NonEmpty a -> Poke () #

peek :: Peek (NonEmpty a) #

Store a => Store (IntMap a) # 
Instance details

Methods

size :: Size (IntMap a) #

poke :: IntMap a -> Poke () #

peek :: Peek (IntMap a) #

Store a => Store (Seq a) # 
Instance details

Methods

size :: Size (Seq a) #

poke :: Seq a -> Poke () #

peek :: Peek (Seq a) #

(Store a, Ord a) => Store (Set a) # 
Instance details

Methods

size :: Size (Set a) #

poke :: Set a -> Poke () #

peek :: Peek (Set a) #

Prim a => Store (PrimStorable a) # 
Instance details

(Eq a, Hashable a, Store a) => Store (HashSet a) # 
Instance details

Methods

size :: Size (HashSet a) #

poke :: HashSet a -> Poke () #

peek :: Peek (HashSet a) #

Store (Vector Bool) # 
Instance details

Methods

size :: Size (Vector Bool) #

poke :: Vector Bool -> Poke () #

peek :: Peek (Vector Bool) #

Store (Vector Char) # 
Instance details

Methods

size :: Size (Vector Char) #

poke :: Vector Char -> Poke () #

peek :: Peek (Vector Char) #

Store (Vector Double) # 
Instance details

Store (Vector Float) # 
Instance details

Store (Vector Int) # 
Instance details

Methods

size :: Size (Vector Int) #

poke :: Vector Int -> Poke () #

peek :: Peek (Vector Int) #

Store (Vector Int8) # 
Instance details

Methods

size :: Size (Vector Int8) #

poke :: Vector Int8 -> Poke () #

peek :: Peek (Vector Int8) #

Store (Vector Int16) # 
Instance details

Store (Vector Int32) # 
Instance details

Store (Vector Int64) # 
Instance details

Store (Vector Word) # 
Instance details

Methods

size :: Size (Vector Word) #

poke :: Vector Word -> Poke () #

peek :: Peek (Vector Word) #

Store (Vector Word8) # 
Instance details

Store (Vector Word16) # 
Instance details

Store (Vector Word32) # 
Instance details

Store (Vector Word64) # 
Instance details

Store (Vector ()) # 
Instance details

Methods

size :: Size (Vector ()) #

poke :: Vector () -> Poke () #

peek :: Peek (Vector ()) #

(Store (Vector a), Store (Vector b)) => Store (Vector (a, b)) # 
Instance details

Methods

size :: Size (Vector (a, b)) #

poke :: Vector (a, b) -> Poke () #

peek :: Peek (Vector (a, b)) #

(Store (Vector a), Store (Vector b), Store (Vector c)) => Store (Vector (a, b, c)) # 
Instance details

Methods

size :: Size (Vector (a, b, c)) #

poke :: Vector (a, b, c) -> Poke () #

peek :: Peek (Vector (a, b, c)) #

(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d)) => Store (Vector (a, b, c, d)) # 
Instance details

Methods

size :: Size (Vector (a, b, c, d)) #

poke :: Vector (a, b, c, d) -> Poke () #

peek :: Peek (Vector (a, b, c, d)) #

(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d), Store (Vector e)) => Store (Vector (a, b, c, d, e)) # 
Instance details

Methods

size :: Size (Vector (a, b, c, d, e)) #

poke :: Vector (a, b, c, d, e) -> Poke () #

peek :: Peek (Vector (a, b, c, d, e)) #

(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d), Store (Vector e), Store (Vector f)) => Store (Vector (a, b, c, d, e, f)) # 
Instance details

Methods

size :: Size (Vector (a, b, c, d, e, f)) #

poke :: Vector (a, b, c, d, e, f) -> Poke () #

peek :: Peek (Vector (a, b, c, d, e, f)) #

Store (Vector a) => Store (Vector (Complex a)) # 
Instance details

Methods

size :: Size (Vector (Complex a)) #

poke :: Vector (Complex a) -> Poke () #

peek :: Peek (Vector (Complex a)) #

Storable a => Store (Vector a) # 
Instance details

Methods

size :: Size (Vector a) #

poke :: Vector a -> Poke () #

peek :: Peek (Vector a) #

Store (Vector Char) # 
Instance details

Methods

size :: Size (Vector Char) #

poke :: Vector Char -> Poke () #

peek :: Peek (Vector Char) #

Store (Vector Double) # 
Instance details

Store (Vector Float) # 
Instance details

Store (Vector Int) # 
Instance details

Methods

size :: Size (Vector Int) #

poke :: Vector Int -> Poke () #

peek :: Peek (Vector Int) #

Store (Vector Int8) # 
Instance details

Methods

size :: Size (Vector Int8) #

poke :: Vector Int8 -> Poke () #

peek :: Peek (Vector Int8) #

Store (Vector Int16) # 
Instance details

Store (Vector Int32) # 
Instance details

Store (Vector Int64) # 
Instance details

Store (Vector Word) # 
Instance details

Methods

size :: Size (Vector Word) #

poke :: Vector Word -> Poke () #

peek :: Peek (Vector Word) #

Store (Vector Word8) # 
Instance details

Store (Vector Word16) # 
Instance details

Store (Vector Word32) # 
Instance details

Store (Vector Word64) # 
Instance details

Store (Vector (Ptr a)) # 
Instance details

Methods

size :: Size (Vector (Ptr a)) #

poke :: Vector (Ptr a) -> Poke () #

peek :: Peek (Vector (Ptr a)) #

Store (Vector (FunPtr a)) # 
Instance details

Methods

size :: Size (Vector (FunPtr a)) #

poke :: Vector (FunPtr a) -> Poke () #

peek :: Peek (Vector (FunPtr a)) #

Store (Vector CDev) # 
Instance details

Methods

size :: Size (Vector CDev) #

poke :: Vector CDev -> Poke () #

peek :: Peek (Vector CDev) #

Store (Vector CIno) # 
Instance details

Methods

size :: Size (Vector CIno) #

poke :: Vector CIno -> Poke () #

peek :: Peek (Vector CIno) #

Store (Vector CMode) # 
Instance details

Store (Vector COff) # 
Instance details

Methods

size :: Size (Vector COff) #

poke :: Vector COff -> Poke () #

peek :: Peek (Vector COff) #

Store (Vector CPid) # 
Instance details

Methods

size :: Size (Vector CPid) #

poke :: Vector CPid -> Poke () #

peek :: Peek (Vector CPid) #

Store (Vector CSsize) # 
Instance details

Store (Vector CGid) # 
Instance details

Methods

size :: Size (Vector CGid) #

poke :: Vector CGid -> Poke () #

peek :: Peek (Vector CGid) #

Store (Vector CNlink) # 
Instance details

Store (Vector CUid) # 
Instance details

Methods

size :: Size (Vector CUid) #

poke :: Vector CUid -> Poke () #

peek :: Peek (Vector CUid) #

Store (Vector CCc) # 
Instance details

Methods

size :: Size (Vector CCc) #

poke :: Vector CCc -> Poke () #

peek :: Peek (Vector CCc) #

Store (Vector CSpeed) # 
Instance details

Store (Vector CTcflag) # 
Instance details

Store (Vector CRLim) # 
Instance details

Store (Vector CBlkSize) # 
Instance details

Store (Vector CBlkCnt) # 
Instance details

Store (Vector CClockId) # 
Instance details

Store (Vector CFsBlkCnt) # 
Instance details

Store (Vector CFsFilCnt) # 
Instance details

Store (Vector CId) # 
Instance details

Methods

size :: Size (Vector CId) #

poke :: Vector CId -> Poke () #

peek :: Peek (Vector CId) #

Store (Vector CKey) # 
Instance details

Methods

size :: Size (Vector CKey) #

poke :: Vector CKey -> Poke () #

peek :: Peek (Vector CKey) #

Store (Vector CTimer) # 
Instance details

Store (Vector Fd) # 
Instance details

Methods

size :: Size (Vector Fd) #

poke :: Vector Fd -> Poke () #

peek :: Peek (Vector Fd) #

Store (Vector CChar) # 
Instance details

Store (Vector CSChar) # 
Instance details

Store (Vector CUChar) # 
Instance details

Store (Vector CShort) # 
Instance details

Store (Vector CUShort) # 
Instance details

Store (Vector CInt) # 
Instance details

Methods

size :: Size (Vector CInt) #

poke :: Vector CInt -> Poke () #

peek :: Peek (Vector CInt) #

Store (Vector CUInt) # 
Instance details

Store (Vector CLong) # 
Instance details

Store (Vector CULong) # 
Instance details

Store (Vector CLLong) # 
Instance details

Store (Vector CULLong) # 
Instance details

Store (Vector CBool) # 
Instance details

Store (Vector CFloat) # 
Instance details

Store (Vector CDouble) # 
Instance details

Store (Vector CPtrdiff) # 
Instance details

Store (Vector CSize) # 
Instance details

Store (Vector CWchar) # 
Instance details

Store (Vector CSigAtomic) # 
Instance details

Store (Vector CClock) # 
Instance details

Store (Vector CTime) # 
Instance details

Store (Vector CUSeconds) # 
Instance details

Store (Vector CSUSeconds) # 
Instance details

Store (Vector CIntPtr) # 
Instance details

Store (Vector CUIntPtr) # 
Instance details

Store (Vector CIntMax) # 
Instance details

Store (Vector CUIntMax) # 
Instance details

Store (Vector Addr) # 
Instance details

Methods

size :: Size (Vector Addr) #

poke :: Vector Addr -> Poke () #

peek :: Peek (Vector Addr) #

Store a => Store (Vector a) # 
Instance details

Methods

size :: Size (Vector a) #

poke :: Vector a -> Poke () #

peek :: Peek (Vector a) #

(Store a, Store b) => Store (Either a b) # 
Instance details

Methods

size :: Size (Either a b) #

poke :: Either a b -> Poke () #

peek :: Peek (Either a b) #

(Store a, Store b) => Store (a, b) # 
Instance details

Methods

size :: Size (a, b) #

poke :: (a, b) -> Poke () #

peek :: Peek (a, b) #

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

Methods

size :: Size (UArray i e) #

poke :: UArray i e -> Poke () #

peek :: Peek (UArray i e) #

(Ix i, Store i, Store e) => Store (Array i e) # 
Instance details

Methods

size :: Size (Array i e) #

poke :: Array i e -> Poke () #

peek :: Peek (Array i e) #

(Ord k, Store k, Store a) => Store (Map k a) # 
Instance details

Methods

size :: Size (Map k a) #

poke :: Map k a -> Poke () #

peek :: Peek (Map k a) #

(Eq k, Hashable k, Store k, Store a) => Store (HashMap k a) # 
Instance details

Methods

size :: Size (HashMap k a) #

poke :: HashMap k a -> Poke () #

peek :: Peek (HashMap k a) #

(Store a, Store b, Store c) => Store (a, b, c) # 
Instance details

Methods

size :: Size (a, b, c) #

poke :: (a, b, c) -> Poke () #

peek :: Peek (a, b, c) #

Storable a => Store (Const a b) # 
Instance details

Methods

size :: Size (Const a b) #

poke :: Const a b -> Poke () #

peek :: Peek (Const a b) #

(Store a, Store b, Store c, Store d) => Store (a, b, c, d) # 
Instance details

Methods

size :: Size (a, b, c, d) #

poke :: (a, b, c, d) -> Poke () #

peek :: Peek (a, b, c, d) #

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

Methods

size :: Size (a, b, c, d, e) #

poke :: (a, b, c, d, e) -> Poke () #

peek :: Peek (a, b, c, d, e) #

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

Methods

size :: Size (a, b, c, d, e, f) #

poke :: (a, b, c, d, e, f) -> Poke () #

peek :: Peek (a, b, c, d, e, f) #

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

Methods

size :: Size (a, b, c, d, e, f, g) #

poke :: (a, b, c, d, e, f, g) -> Poke () #

peek :: Peek (a, b, c, d, e, f, g) #