store-0.7.6: Fast binary serialization

Safe Haskell | None
Language | Haskell2010

Data.Store.Internal

Contents

- Encoding and decoding strict ByteStrings.
- Store class and related types.
  - Exceptions thrown by Poke
  - Exceptions thrown by Peek
  - Size type
  - Store instances in terms of IsSequence
  - Store instances in terms of IsSet
  - Store instances in terms of IsMap
    - Utilities for ordered maps
  - Store instances in terms of IArray
  - Store instances in terms of Generic
  - Peek utilities
  - Static Size type
- Orphan instances

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

- encode :: Store a => a -> ByteString
- decode :: Store a => ByteString -> Either PeekException a
- decodeWith :: Peek a -> ByteString -> Either PeekException a
- decodeEx :: Store a => ByteString -> a
- decodeExWith :: Peek a -> ByteString -> a
- decodeExPortionWith :: Peek a -> ByteString -> (Offset, a)
- decodeIO :: Store a => ByteString -> IO a
- decodeIOWith :: Peek a -> ByteString -> IO a
- decodeIOPortionWith :: Peek a -> ByteString -> IO (Offset, a)
- class Store a where
  - size :: Size a
  - poke :: a -> Poke ()
  - peek :: Peek a
- data Poke a
- data Peek a
- runPeek :: Peek a -> PeekState -> Ptr Word8 -> IO (PeekResult a)
- data PokeException = PokeException {
  - pokeExByteIndex :: Offset
  - pokeExMessage :: Text
  }
- pokeException :: Text -> Poke a
- data PeekException = PeekException {
  - peekExBytesFromEnd :: Offset
  - peekExMessage :: Text
  }
- peekException :: Text -> Peek a
- tooManyBytes :: Int -> Int -> String -> IO void
- data Size a
  - = VarSize (a -> Int)
  - | ConstSize !Int
- getSize :: Store a => a -> Int
- getSizeWith :: Size a -> a -> Int
- combineSize :: forall a b c. (Store a, Store b) => (c -> a) -> (c -> b) -> Size c
- combineSizeWith :: forall a b c. (c -> a) -> (c -> b) -> Size a -> Size b -> Size c
- addSize :: Int -> Size a -> Size a
- sizeSequence :: forall t. (IsSequence t, Store (Element t)) => Size t
- pokeSequence :: (IsSequence t, Store (Element t)) => t -> Poke ()
- peekSequence :: (IsSequence t, Store (Element t), Index t ~ Int) => Peek t
- sizeSet :: forall t. (IsSet t, Store (Element t)) => Size t
- pokeSet :: (IsSet t, Store (Element t)) => t -> Poke ()
- peekSet :: (IsSet t, Store (Element t)) => Peek t
- sizeMap :: forall t. (Store (ContainerKey t), Store (MapValue t), IsMap t) => Size t
- pokeMap :: (Store (ContainerKey t), Store (MapValue t), IsMap t) => t -> Poke ()
- peekMap :: (Store (ContainerKey t), Store (MapValue t), IsMap t) => Peek t
- sizeOrdMap :: forall t. (Store (ContainerKey t), Store (MapValue t), IsMap t) => Size t
- pokeOrdMap :: (Store (ContainerKey t), Store (MapValue t), IsMap t) => t -> Poke ()
- peekOrdMapWith :: (Store (ContainerKey t), Store (MapValue t)) => ([(ContainerKey t, MapValue t)] -> t) -> Peek t
- 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)
- class GStoreSize f
- genericSize :: (Generic a, GStoreSize (Rep a)) => Size a
- class GStorePoke f
- genericPoke :: (Generic a, GStorePoke (Rep a)) => a -> Poke ()
- class GStorePeek f
- genericPeek :: (Generic a, GStorePeek (Rep a)) => Peek a
- skip :: Int -> Peek ()
- isolate :: Int -> Peek a -> Peek a
- peekMagic :: (Eq a, Show a, Store a) => String -> a -> Peek ()
- class KnownNat n => IsStaticSize n a where
  - toStaticSize :: a -> Maybe (StaticSize n a)
- newtype StaticSize (n :: Nat) a = StaticSize {
  - unStaticSize :: a
  }
- toStaticSizeEx :: IsStaticSize n a => a -> StaticSize n a
- liftStaticSize :: forall n a. (KnownNat n, Lift a) => TypeQ -> StaticSize n a -> ExpQ
- staticByteStringExp :: ByteString -> ExpQ

# Encoding and decoding strict ByteStrings.

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

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 Source #

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 Source #

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 Source #

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

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

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) Source #

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 Source #

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

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

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) Source #

Similar to `decodeExPortionWith`, but runs in the `IO` monad.

# Store class and related types.

class Store a where Source #

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` .

Minimal complete definition

Nothing

Methods

size :: Size a Source #

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.

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

poke :: a -> Poke () Source #

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.

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

peek :: Peek a Source #

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

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

#### Instances

Instances details

Store Bool Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Bool Source # poke :: Bool -> Poke () Source # peek :: Peek Bool Source #
Store Char Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Char Source # poke :: Char -> Poke () Source # peek :: Peek Char Source #
Store Double Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Double Source # poke :: Double -> Poke () Source # peek :: Peek Double Source #
Store Float Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Float Source # poke :: Float -> Poke () Source # peek :: Peek Float Source #
Store Int Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Int Source # poke :: Int -> Poke () Source # peek :: Peek Int Source #
Store Int8 Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Int8 Source # poke :: Int8 -> Poke () Source # peek :: Peek Int8 Source #
Store Int16 Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Int16 Source # poke :: Int16 -> Poke () Source # peek :: Peek Int16 Source #
Store Int32 Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Int32 Source # poke :: Int32 -> Poke () Source # peek :: Peek Int32 Source #
Store Int64 Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Int64 Source # poke :: Int64 -> Poke () Source # peek :: Peek Int64 Source #
Store Integer Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Integer Source # poke :: Integer -> Poke () Source # peek :: Peek Integer Source #
Store Word Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Word Source # poke :: Word -> Poke () Source # peek :: Peek Word Source #
Store Word8 Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Word8 Source # poke :: Word8 -> Poke () Source # peek :: Peek Word8 Source #
Store Word16 Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Word16 Source # poke :: Word16 -> Poke () Source # peek :: Peek Word16 Source #
Store Word32 Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Word32 Source # poke :: Word32 -> Poke () Source # peek :: Peek Word32 Source #
Store Word64 Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Word64 Source # poke :: Word64 -> Poke () Source # peek :: Peek Word64 Source #
Store Exp Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Exp Source # poke :: Exp -> Poke () Source # peek :: Peek Exp Source #
Store Match Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Match Source # poke :: Match -> Poke () Source # peek :: Peek Match Source #
Store Clause Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Clause Source # poke :: Clause -> Poke () Source # peek :: Peek Clause Source #
Store Pat Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Pat Source # poke :: Pat -> Poke () Source # peek :: Peek Pat Source #
Store Type Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Type Source # poke :: Type -> Poke () Source # peek :: Peek Type Source #
Store Dec Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Dec Source # poke :: Dec -> Poke () Source # peek :: Peek Dec Source #
Store Name Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Name Source # poke :: Name -> Poke () Source # peek :: Peek Name Source #
Store FunDep Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size FunDep Source # poke :: FunDep -> Poke () Source # peek :: Peek FunDep Source #
Store InjectivityAnn Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size InjectivityAnn Source # poke :: InjectivityAnn -> Poke () Source # peek :: Peek InjectivityAnn Source #
Store Overlap Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Overlap Source # poke :: Overlap -> Poke () Source # peek :: Peek Overlap Source #
Store () Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size () Source # poke :: () -> Poke () Source # peek :: Peek () Source #
Store CWchar Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CWchar Source # poke :: CWchar -> Poke () Source # peek :: Peek CWchar Source #
Store CUShort Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CUShort Source # poke :: CUShort -> Poke () Source # peek :: Peek CUShort Source #
Store CUSeconds Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CUSeconds Source # poke :: CUSeconds -> Poke () Source # peek :: Peek CUSeconds Source #
Store CULong Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CULong Source # poke :: CULong -> Poke () Source # peek :: Peek CULong Source #
Store CULLong Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CULLong Source # poke :: CULLong -> Poke () Source # peek :: Peek CULLong Source #
Store CUIntPtr Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CUIntPtr Source # poke :: CUIntPtr -> Poke () Source # peek :: Peek CUIntPtr Source #
Store CUIntMax Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CUIntMax Source # poke :: CUIntMax -> Poke () Source # peek :: Peek CUIntMax Source #
Store CUInt Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CUInt Source # poke :: CUInt -> Poke () Source # peek :: Peek CUInt Source #
Store CUChar Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CUChar Source # poke :: CUChar -> Poke () Source # peek :: Peek CUChar Source #
Store CTime Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CTime Source # poke :: CTime -> Poke () Source # peek :: Peek CTime Source #
Store CSize Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CSize Source # poke :: CSize -> Poke () Source # peek :: Peek CSize Source #
Store CSigAtomic Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CSigAtomic Source # poke :: CSigAtomic -> Poke () Source # peek :: Peek CSigAtomic Source #
Store CShort Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CShort Source # poke :: CShort -> Poke () Source # peek :: Peek CShort Source #
Store CSUSeconds Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CSUSeconds Source # poke :: CSUSeconds -> Poke () Source # peek :: Peek CSUSeconds Source #
Store CSChar Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CSChar Source # poke :: CSChar -> Poke () Source # peek :: Peek CSChar Source #
Store CPtrdiff Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CPtrdiff Source # poke :: CPtrdiff -> Poke () Source # peek :: Peek CPtrdiff Source #
Store CLong Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CLong Source # poke :: CLong -> Poke () Source # peek :: Peek CLong Source #
Store CLLong Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CLLong Source # poke :: CLLong -> Poke () Source # peek :: Peek CLLong Source #
Store CIntPtr Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CIntPtr Source # poke :: CIntPtr -> Poke () Source # peek :: Peek CIntPtr Source #
Store CIntMax Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CIntMax Source # poke :: CIntMax -> Poke () Source # peek :: Peek CIntMax Source #
Store CFloat Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CFloat Source # poke :: CFloat -> Poke () Source # peek :: Peek CFloat Source #
Store CDouble Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CDouble Source # poke :: CDouble -> Poke () Source # peek :: Peek CDouble Source #
Store CClock Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CClock Source # poke :: CClock -> Poke () Source # peek :: Peek CClock Source #
Store CChar Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CChar Source # poke :: CChar -> Poke () Source # peek :: Peek CChar Source #
Store CBool Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CBool Source # poke :: CBool -> Poke () Source # peek :: Peek CBool Source #
Store CInt Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size CInt Source # poke :: CInt -> Poke () Source # peek :: Peek CInt Source #
Store Fingerprint Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Fingerprint Source # poke :: Fingerprint -> Poke () Source # peek :: Peek Fingerprint Source #
Store WordPtr Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size WordPtr Source # poke :: WordPtr -> Poke () Source # peek :: Peek WordPtr Source #
Store IntPtr Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size IntPtr Source # poke :: IntPtr -> Poke () Source # peek :: Peek IntPtr Source #
Store All Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size All Source # poke :: All -> Poke () Source # peek :: Peek All Source #
Store ByteString Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size ByteString Source # poke :: ByteString -> Poke () Source # peek :: Peek ByteString Source #
Store ByteString Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size ByteString Source # poke :: ByteString -> Poke () Source # peek :: Peek ByteString Source #
Store Any Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Any Source # poke :: Any -> Poke () Source # peek :: Peek Any Source #
Store PortNumber Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size PortNumber Source # poke :: PortNumber -> Poke () Source # peek :: Peek PortNumber Source #
Store Info Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Info Source # poke :: Info -> Poke () Source # peek :: Peek Info Source #
Store Con Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Con Source # poke :: Con -> Poke () Source # peek :: Peek Con Source #
Store NameFlavour Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size NameFlavour Source # poke :: NameFlavour -> Poke () Source # peek :: Peek NameFlavour Source #
Store TyVarBndr Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size TyVarBndr Source # poke :: TyVarBndr -> Poke () Source # peek :: Peek TyVarBndr Source #
Store Void Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Void Source # poke :: Void -> Poke () Source # peek :: Peek Void Source #
Store Text Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Text Source # poke :: Text -> Poke () Source # peek :: Peek Text Source #
Store Lit Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Lit Source # poke :: Lit -> Poke () Source # peek :: Peek Lit Source #
Store AnnTarget Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size AnnTarget Source # poke :: AnnTarget -> Poke () Source # peek :: Peek AnnTarget Source #
Store Bang Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Bang Source # poke :: Bang -> Poke () Source # peek :: Peek Bang Source #
Store Body Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Body Source # poke :: Body -> Poke () Source # peek :: Peek Body Source #
Store Callconv Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Callconv Source # poke :: Callconv -> Poke () Source # peek :: Peek Callconv Source #
Store DerivClause Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size DerivClause Source # poke :: DerivClause -> Poke () Source # peek :: Peek DerivClause Source #
Store DerivStrategy Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size DerivStrategy Source # poke :: DerivStrategy -> Poke () Source # peek :: Peek DerivStrategy Source #
Store FamilyResultSig Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size FamilyResultSig Source # poke :: FamilyResultSig -> Poke () Source # peek :: Peek FamilyResultSig Source #
Store Fixity Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Fixity Source # poke :: Fixity -> Poke () Source # peek :: Peek Fixity Source #
Store FixityDirection Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size FixityDirection Source # poke :: FixityDirection -> Poke () Source # peek :: Peek FixityDirection Source #
Store Foreign Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Foreign Source # poke :: Foreign -> Poke () Source # peek :: Peek Foreign Source #
Store Guard Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Guard Source # poke :: Guard -> Poke () Source # peek :: Peek Guard Source #
Store Inline Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Inline Source # poke :: Inline -> Poke () Source # peek :: Peek Inline Source #
Store NameSpace Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size NameSpace Source # poke :: NameSpace -> Poke () Source # peek :: Peek NameSpace Source #
Store PatSynArgs Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size PatSynArgs Source # poke :: PatSynArgs -> Poke () Source # peek :: Peek PatSynArgs Source #
Store PatSynDir Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size PatSynDir Source # poke :: PatSynDir -> Poke () Source # peek :: Peek PatSynDir Source #
Store Phases Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Phases Source # poke :: Phases -> Poke () Source # peek :: Peek Phases Source #
Store Pragma Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Pragma Source # poke :: Pragma -> Poke () Source # peek :: Peek Pragma Source #
Store Range Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Range Source # poke :: Range -> Poke () Source # peek :: Peek Range Source #
Store Role Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Role Source # poke :: Role -> Poke () Source # peek :: Peek Role Source #
Store RuleBndr Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size RuleBndr Source # poke :: RuleBndr -> Poke () Source # peek :: Peek RuleBndr Source #
Store RuleMatch Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size RuleMatch Source # poke :: RuleMatch -> Poke () Source # peek :: Peek RuleMatch Source #
Store Safety Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Safety Source # poke :: Safety -> Poke () Source # peek :: Peek Safety Source #
Store SourceStrictness Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size SourceStrictness Source # poke :: SourceStrictness -> Poke () Source # peek :: Peek SourceStrictness Source #
Store SourceUnpackedness Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size SourceUnpackedness Source # poke :: SourceUnpackedness -> Poke () Source # peek :: Peek SourceUnpackedness Source #
Store Stmt Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Stmt Source # poke :: Stmt -> Poke () Source # peek :: Peek Stmt Source #
Store TyLit Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size TyLit Source # poke :: TyLit -> Poke () Source # peek :: Peek TyLit Source #
Store TySynEqn Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size TySynEqn Source # poke :: TySynEqn -> Poke () Source # peek :: Peek TySynEqn Source #
Store TypeFamilyHead Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size TypeFamilyHead Source # poke :: TypeFamilyHead -> Poke () Source # peek :: Peek TypeFamilyHead Source #
Store ModName Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size ModName Source # poke :: ModName -> Poke () Source # peek :: Peek ModName Source #
Store OccName Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size OccName Source # poke :: OccName -> Poke () Source # peek :: Peek OccName Source #
Store PkgName Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size PkgName Source # poke :: PkgName -> Poke () Source # peek :: Peek PkgName Source #
Store IntSet Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size IntSet Source # poke :: IntSet -> Poke () Source # peek :: Peek IntSet Source #
Store Day Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size Day Source # poke :: Day -> Poke () Source # peek :: Peek Day Source #
Store DiffTime Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size DiffTime Source # poke :: DiffTime -> Poke () Source # peek :: Peek DiffTime Source #
Store UTCTime Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size UTCTime Source # poke :: UTCTime -> Poke () Source # peek :: Peek UTCTime Source #
Store TimeSpec Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size TimeSpec Source # poke :: TimeSpec -> Poke () Source # peek :: Peek TimeSpec Source #
Store ShortByteString Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size ShortByteString Source # poke :: ShortByteString -> Poke () Source # peek :: Peek ShortByteString Source #
Store TypeHash Source # |
Instance details Defined in Data.Store.TypeHash.Internal Methods size :: Size TypeHash Source # poke :: TypeHash -> Poke () Source # peek :: Peek TypeHash Source #
Store StoreVersion Source # |
Instance details Defined in Data.Store.Version Methods size :: Size StoreVersion Source # poke :: StoreVersion -> Poke () Source # peek :: Peek StoreVersion Source #
Deriver (Store a) Source # |
Instance details Defined in Data.Store.TH.Internal Methods runDeriver :: Proxy (Store a) -> Cxt -> Type -> Q [Dec] Source #
Store a => Store [a] Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size [a] Source # poke :: [a] -> Poke () Source # peek :: Peek [a] Source #
Store a => Store (Maybe a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Maybe a) Source # poke :: Maybe a -> Poke () Source # peek :: Peek (Maybe a) Source #
Store a => Store (Ratio a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Ratio a) Source # poke :: Ratio a -> Poke () Source # peek :: Peek (Ratio a) Source #
Store (StablePtr a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (StablePtr a) Source # poke :: StablePtr a -> Poke () Source # peek :: Peek (StablePtr a) Source #
Store (Ptr a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Ptr a) Source # poke :: Ptr a -> Poke () Source # peek :: Peek (Ptr a) Source #
Store (FunPtr a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (FunPtr a) Source # poke :: FunPtr a -> Poke () Source # peek :: Peek (FunPtr a) Source #
Store (Fixed a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Fixed a) Source # poke :: Fixed a -> Poke () Source # peek :: Peek (Fixed a) Source #
Store a => Store (Identity a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Identity a) Source # poke :: Identity a -> Poke () Source # peek :: Peek (Identity a) Source #
Store a => Store (Complex a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Complex a) Source # poke :: Complex a -> Poke () Source # peek :: Peek (Complex a) Source #
Store a => Store (Sum a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Sum a) Source # poke :: Sum a -> Poke () Source # peek :: Peek (Sum a) Source #
Store a => Store (Product a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Product a) Source # poke :: Product a -> Poke () Source # peek :: Peek (Product a) Source #
Store a => Store (NonEmpty a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (NonEmpty a) Source # poke :: NonEmpty a -> Poke () Source # peek :: Peek (NonEmpty a) Source #
Store a => Store (Last a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Last a) Source # poke :: Last a -> Poke () Source # peek :: Peek (Last a) Source #
Store a => Store (First a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (First a) Source # poke :: First a -> Poke () Source # peek :: Peek (First a) Source #
Store a => Store (Dual a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Dual a) Source # poke :: Dual a -> Poke () Source # peek :: Peek (Dual a) Source #
Prim a => Store (PrimStorable a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (PrimStorable a) Source # poke :: PrimStorable a -> Poke () Source # peek :: Peek (PrimStorable a) Source #
(Eq a, Hashable a, Store a) => Store (HashSet a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (HashSet a) Source # poke :: HashSet a -> Poke () Source # peek :: Peek (HashSet a) Source #
Store (Vector Bool) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Bool) Source # poke :: Vector Bool -> Poke () Source # peek :: Peek (Vector Bool) Source #
Store (Vector Char) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Char) Source # poke :: Vector Char -> Poke () Source # peek :: Peek (Vector Char) Source #
Store (Vector Double) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Double) Source # poke :: Vector Double -> Poke () Source # peek :: Peek (Vector Double) Source #
Store (Vector Float) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Float) Source # poke :: Vector Float -> Poke () Source # peek :: Peek (Vector Float) Source #
Store (Vector Int) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int) Source # poke :: Vector Int -> Poke () Source # peek :: Peek (Vector Int) Source #
Store (Vector Int8) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int8) Source # poke :: Vector Int8 -> Poke () Source # peek :: Peek (Vector Int8) Source #
Store (Vector Int16) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int16) Source # poke :: Vector Int16 -> Poke () Source # peek :: Peek (Vector Int16) Source #
Store (Vector Int32) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int32) Source # poke :: Vector Int32 -> Poke () Source # peek :: Peek (Vector Int32) Source #
Store (Vector Int64) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int64) Source # poke :: Vector Int64 -> Poke () Source # peek :: Peek (Vector Int64) Source #
Store (Vector Word) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word) Source # poke :: Vector Word -> Poke () Source # peek :: Peek (Vector Word) Source #
Store (Vector Word8) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word8) Source # poke :: Vector Word8 -> Poke () Source # peek :: Peek (Vector Word8) Source #
Store (Vector Word16) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word16) Source # poke :: Vector Word16 -> Poke () Source # peek :: Peek (Vector Word16) Source #
Store (Vector Word32) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word32) Source # poke :: Vector Word32 -> Poke () Source # peek :: Peek (Vector Word32) Source #
Store (Vector Word64) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word64) Source # poke :: Vector Word64 -> Poke () Source # peek :: Peek (Vector Word64) Source #
Store (Vector ()) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector ()) Source # poke :: Vector () -> Poke () Source # peek :: Peek (Vector ()) Source #
(Store (Vector a), Store (Vector b)) => Store (Vector (a, b)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (a, b)) Source # poke :: Vector (a, b) -> Poke () Source # peek :: Peek (Vector (a, b)) Source #
(Store (Vector a), Store (Vector b), Store (Vector c)) => Store (Vector (a, b, c)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (a, b, c)) Source # poke :: Vector (a, b, c) -> Poke () Source # peek :: Peek (Vector (a, b, c)) Source #
(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d)) => Store (Vector (a, b, c, d)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (a, b, c, d)) Source # poke :: Vector (a, b, c, d) -> Poke () Source # peek :: Peek (Vector (a, b, c, d)) Source #
(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d), Store (Vector e)) => Store (Vector (a, b, c, d, e)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (a, b, c, d, e)) Source # poke :: Vector (a, b, c, d, e) -> Poke () Source # peek :: Peek (Vector (a, b, c, d, e)) Source #
(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)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (a, b, c, d, e, f)) Source # poke :: Vector (a, b, c, d, e, f) -> Poke () Source # peek :: Peek (Vector (a, b, c, d, e, f)) Source #
Store (Vector (f (g a))) => Store (Vector (Compose f g a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Compose f g a)) Source # poke :: Vector (Compose f g a) -> Poke () Source # peek :: Peek (Vector (Compose f g a)) Source #
Store (Vector All) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector All) Source # poke :: Vector All -> Poke () Source # peek :: Peek (Vector All) Source #
Store (Vector a) => Store (Vector (Identity a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Identity a)) Source # poke :: Vector (Identity a) -> Poke () Source # peek :: Peek (Vector (Identity a)) Source #
Store (Vector a) => Store (Vector (Complex a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Complex a)) Source # poke :: Vector (Complex a) -> Poke () Source # peek :: Peek (Vector (Complex a)) Source #
Store (Vector a) => Store (Vector (Sum a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Sum a)) Source # poke :: Vector (Sum a) -> Poke () Source # peek :: Peek (Vector (Sum a)) Source #
Store (Vector a) => Store (Vector (Product a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Product a)) Source # poke :: Vector (Product a) -> Poke () Source # peek :: Peek (Vector (Product a)) Source #
Store (Vector a) => Store (Vector (Dual a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Dual a)) Source # poke :: Vector (Dual a) -> Poke () Source # peek :: Peek (Vector (Dual a)) Source #
Store (Vector a) => Store (Vector (Down a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Down a)) Source # poke :: Vector (Down a) -> Poke () Source # peek :: Peek (Vector (Down a)) Source #
Store (Vector (f a)) => Store (Vector (Alt f a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Alt f a)) Source # poke :: Vector (Alt f a) -> Poke () Source # peek :: Peek (Vector (Alt f a)) Source #
Store (Vector a) => Store (Vector (Const a b)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Const a b)) Source # poke :: Vector (Const a b) -> Poke () Source # peek :: Peek (Vector (Const a b)) Source #
(Store (Vector a), Store (Vector b)) => Store (Vector (Arg a b)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Arg a b)) Source # poke :: Vector (Arg a b) -> Poke () Source # peek :: Peek (Vector (Arg a b)) Source #
Store (Vector Any) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Any) Source # poke :: Vector Any -> Poke () Source # peek :: Peek (Vector Any) Source #
Store (Vector a) => Store (Vector (First a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (First a)) Source # poke :: Vector (First a) -> Poke () Source # peek :: Peek (Vector (First a)) Source #
Store (Vector a) => Store (Vector (Last a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Last a)) Source # poke :: Vector (Last a) -> Poke () Source # peek :: Peek (Vector (Last a)) Source #
Store (Vector a) => Store (Vector (Max a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Max a)) Source # poke :: Vector (Max a) -> Poke () Source # peek :: Peek (Vector (Max a)) Source #
Store (Vector a) => Store (Vector (Min a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Min a)) Source # poke :: Vector (Min a) -> Poke () Source # peek :: Peek (Vector (Min a)) Source #
Store (Vector a) => Store (Vector (WrappedMonoid a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (WrappedMonoid a)) Source # poke :: Vector (WrappedMonoid a) -> Poke () Source # peek :: Peek (Vector (WrappedMonoid a)) Source #
Storable a => Store (Vector a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector a) Source # poke :: Vector a -> Poke () Source # peek :: Peek (Vector a) Source #
Store (Vector Char) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Char) Source # poke :: Vector Char -> Poke () Source # peek :: Peek (Vector Char) Source #
Store (Vector Double) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Double) Source # poke :: Vector Double -> Poke () Source # peek :: Peek (Vector Double) Source #
Store (Vector Float) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Float) Source # poke :: Vector Float -> Poke () Source # peek :: Peek (Vector Float) Source #
Store (Vector Int) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int) Source # poke :: Vector Int -> Poke () Source # peek :: Peek (Vector Int) Source #
Store (Vector Int8) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int8) Source # poke :: Vector Int8 -> Poke () Source # peek :: Peek (Vector Int8) Source #
Store (Vector Int16) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int16) Source # poke :: Vector Int16 -> Poke () Source # peek :: Peek (Vector Int16) Source #
Store (Vector Int32) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int32) Source # poke :: Vector Int32 -> Poke () Source # peek :: Peek (Vector Int32) Source #
Store (Vector Int64) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Int64) Source # poke :: Vector Int64 -> Poke () Source # peek :: Peek (Vector Int64) Source #
Store (Vector (StablePtr a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (StablePtr a)) Source # poke :: Vector (StablePtr a) -> Poke () Source # peek :: Peek (Vector (StablePtr a)) Source #
Store (Vector Word) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word) Source # poke :: Vector Word -> Poke () Source # peek :: Peek (Vector Word) Source #
Store (Vector Word8) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word8) Source # poke :: Vector Word8 -> Poke () Source # peek :: Peek (Vector Word8) Source #
Store (Vector Word16) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word16) Source # poke :: Vector Word16 -> Poke () Source # peek :: Peek (Vector Word16) Source #
Store (Vector Word32) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word32) Source # poke :: Vector Word32 -> Poke () Source # peek :: Peek (Vector Word32) Source #
Store (Vector Word64) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Word64) Source # poke :: Vector Word64 -> Poke () Source # peek :: Peek (Vector Word64) Source #
Store (Vector (Ptr a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Ptr a)) Source # poke :: Vector (Ptr a) -> Poke () Source # peek :: Peek (Vector (Ptr a)) Source #
Store (Vector (FunPtr a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (FunPtr a)) Source # poke :: Vector (FunPtr a) -> Poke () Source # peek :: Peek (Vector (FunPtr a)) Source #
Store (Vector Fd) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector Fd) Source # poke :: Vector Fd -> Poke () Source # peek :: Peek (Vector Fd) Source #
Store (Vector CUid) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CUid) Source # poke :: Vector CUid -> Poke () Source # peek :: Peek (Vector CUid) Source #
Store (Vector CTimer) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CTimer) Source # poke :: Vector CTimer -> Poke () Source # peek :: Peek (Vector CTimer) Source #
Store (Vector CSpeed) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CSpeed) Source # poke :: Vector CSpeed -> Poke () Source # peek :: Peek (Vector CSpeed) Source #
Store (Vector CRLim) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CRLim) Source # poke :: Vector CRLim -> Poke () Source # peek :: Peek (Vector CRLim) Source #
Store (Vector CNlink) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CNlink) Source # poke :: Vector CNlink -> Poke () Source # peek :: Peek (Vector CNlink) Source #
Store (Vector CKey) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CKey) Source # poke :: Vector CKey -> Poke () Source # peek :: Peek (Vector CKey) Source #
Store (Vector CId) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CId) Source # poke :: Vector CId -> Poke () Source # peek :: Peek (Vector CId) Source #
Store (Vector CGid) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CGid) Source # poke :: Vector CGid -> Poke () Source # peek :: Peek (Vector CGid) Source #
Store (Vector CFsFilCnt) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CFsFilCnt) Source # poke :: Vector CFsFilCnt -> Poke () Source # peek :: Peek (Vector CFsFilCnt) Source #
Store (Vector CFsBlkCnt) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CFsBlkCnt) Source # poke :: Vector CFsBlkCnt -> Poke () Source # peek :: Peek (Vector CFsBlkCnt) Source #
Store (Vector CClockId) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CClockId) Source # poke :: Vector CClockId -> Poke () Source # peek :: Peek (Vector CClockId) Source #
Store (Vector CCc) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CCc) Source # poke :: Vector CCc -> Poke () Source # peek :: Peek (Vector CCc) Source #
Store (Vector CBlkSize) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CBlkSize) Source # poke :: Vector CBlkSize -> Poke () Source # peek :: Peek (Vector CBlkSize) Source #
Store (Vector CBlkCnt) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CBlkCnt) Source # poke :: Vector CBlkCnt -> Poke () Source # peek :: Peek (Vector CBlkCnt) Source #
Store (Vector CSsize) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CSsize) Source # poke :: Vector CSsize -> Poke () Source # peek :: Peek (Vector CSsize) Source #
Store (Vector CTcflag) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CTcflag) Source # poke :: Vector CTcflag -> Poke () Source # peek :: Peek (Vector CTcflag) Source #
Store (Vector COff) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector COff) Source # poke :: Vector COff -> Poke () Source # peek :: Peek (Vector COff) Source #
Store (Vector CPid) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CPid) Source # poke :: Vector CPid -> Poke () Source # peek :: Peek (Vector CPid) Source #
Store (Vector CIno) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CIno) Source # poke :: Vector CIno -> Poke () Source # peek :: Peek (Vector CIno) Source #
Store (Vector CDev) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CDev) Source # poke :: Vector CDev -> Poke () Source # peek :: Peek (Vector CDev) Source #
Store (Vector CMode) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CMode) Source # poke :: Vector CMode -> Poke () Source # peek :: Peek (Vector CMode) Source #
Store (Vector CWchar) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CWchar) Source # poke :: Vector CWchar -> Poke () Source # peek :: Peek (Vector CWchar) Source #
Store (Vector CUShort) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CUShort) Source # poke :: Vector CUShort -> Poke () Source # peek :: Peek (Vector CUShort) Source #
Store (Vector CUSeconds) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CUSeconds) Source # poke :: Vector CUSeconds -> Poke () Source # peek :: Peek (Vector CUSeconds) Source #
Store (Vector CULong) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CULong) Source # poke :: Vector CULong -> Poke () Source # peek :: Peek (Vector CULong) Source #
Store (Vector CULLong) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CULLong) Source # poke :: Vector CULLong -> Poke () Source # peek :: Peek (Vector CULLong) Source #
Store (Vector CUIntPtr) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CUIntPtr) Source # poke :: Vector CUIntPtr -> Poke () Source # peek :: Peek (Vector CUIntPtr) Source #
Store (Vector CUIntMax) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CUIntMax) Source # poke :: Vector CUIntMax -> Poke () Source # peek :: Peek (Vector CUIntMax) Source #
Store (Vector CUInt) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CUInt) Source # poke :: Vector CUInt -> Poke () Source # peek :: Peek (Vector CUInt) Source #
Store (Vector CUChar) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CUChar) Source # poke :: Vector CUChar -> Poke () Source # peek :: Peek (Vector CUChar) Source #
Store (Vector CTime) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CTime) Source # poke :: Vector CTime -> Poke () Source # peek :: Peek (Vector CTime) Source #
Store (Vector CSize) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CSize) Source # poke :: Vector CSize -> Poke () Source # peek :: Peek (Vector CSize) Source #
Store (Vector CSigAtomic) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CSigAtomic) Source # poke :: Vector CSigAtomic -> Poke () Source # peek :: Peek (Vector CSigAtomic) Source #
Store (Vector CShort) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CShort) Source # poke :: Vector CShort -> Poke () Source # peek :: Peek (Vector CShort) Source #
Store (Vector CSUSeconds) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CSUSeconds) Source # poke :: Vector CSUSeconds -> Poke () Source # peek :: Peek (Vector CSUSeconds) Source #
Store (Vector CSChar) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CSChar) Source # poke :: Vector CSChar -> Poke () Source # peek :: Peek (Vector CSChar) Source #
Store (Vector CPtrdiff) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CPtrdiff) Source # poke :: Vector CPtrdiff -> Poke () Source # peek :: Peek (Vector CPtrdiff) Source #
Store (Vector CLong) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CLong) Source # poke :: Vector CLong -> Poke () Source # peek :: Peek (Vector CLong) Source #
Store (Vector CLLong) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CLLong) Source # poke :: Vector CLLong -> Poke () Source # peek :: Peek (Vector CLLong) Source #
Store (Vector CIntPtr) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CIntPtr) Source # poke :: Vector CIntPtr -> Poke () Source # peek :: Peek (Vector CIntPtr) Source #
Store (Vector CIntMax) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CIntMax) Source # poke :: Vector CIntMax -> Poke () Source # peek :: Peek (Vector CIntMax) Source #
Store (Vector CFloat) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CFloat) Source # poke :: Vector CFloat -> Poke () Source # peek :: Peek (Vector CFloat) Source #
Store (Vector CDouble) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CDouble) Source # poke :: Vector CDouble -> Poke () Source # peek :: Peek (Vector CDouble) Source #
Store (Vector CClock) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CClock) Source # poke :: Vector CClock -> Poke () Source # peek :: Peek (Vector CClock) Source #
Store (Vector CChar) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CChar) Source # poke :: Vector CChar -> Poke () Source # peek :: Peek (Vector CChar) Source #
Store (Vector CBool) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CBool) Source # poke :: Vector CBool -> Poke () Source # peek :: Peek (Vector CBool) Source #
Store (Vector CInt) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector CInt) Source # poke :: Vector CInt -> Poke () Source # peek :: Peek (Vector CInt) Source #
Prim a => Store (Vector (Identity a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Identity a)) Source # poke :: Vector (Identity a) -> Poke () Source # peek :: Peek (Vector (Identity a)) Source #
Prim a => Store (Vector (Sum a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Sum a)) Source # poke :: Vector (Sum a) -> Poke () Source # peek :: Peek (Vector (Sum a)) Source #
Prim a => Store (Vector (Product a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Product a)) Source # poke :: Vector (Product a) -> Poke () Source # peek :: Peek (Vector (Product a)) Source #
Prim a => Store (Vector (Dual a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Dual a)) Source # poke :: Vector (Dual a) -> Poke () Source # peek :: Peek (Vector (Dual a)) Source #
Prim a => Store (Vector (Down a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Down a)) Source # poke :: Vector (Down a) -> Poke () Source # peek :: Peek (Vector (Down a)) Source #
Prim a => Store (Vector (Const a b)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Const a b)) Source # poke :: Vector (Const a b) -> Poke () Source # peek :: Peek (Vector (Const a b)) Source #
Prim a => Store (Vector (First a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (First a)) Source # poke :: Vector (First a) -> Poke () Source # peek :: Peek (Vector (First a)) Source #
Prim a => Store (Vector (Last a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Last a)) Source # poke :: Vector (Last a) -> Poke () Source # peek :: Peek (Vector (Last a)) Source #
Prim a => Store (Vector (Max a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Max a)) Source # poke :: Vector (Max a) -> Poke () Source # peek :: Peek (Vector (Max a)) Source #
Prim a => Store (Vector (Min a)) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector (Min a)) Source # poke :: Vector (Min a) -> Poke () Source # peek :: Peek (Vector (Min a)) Source #
Store a => Store (Vector a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Vector a) Source # poke :: Vector a -> Poke () Source # peek :: Peek (Vector a) Source #
Store a => Store (IntMap a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (IntMap a) Source # poke :: IntMap a -> Poke () Source # peek :: Peek (IntMap a) Source #
Store a => Store (Seq a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Seq a) Source # poke :: Seq a -> Poke () Source # peek :: Peek (Seq a) Source #
(Store a, Ord a) => Store (Set a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Set a) Source # poke :: Set a -> Poke () Source # peek :: Peek (Set a) Source #
(Store a, HasTypeHash a) => Store (Tagged a) Source # |
Instance details Defined in Data.Store.TypeHash.Internal Methods size :: Size (Tagged a) Source # poke :: Tagged a -> Poke () Source # peek :: Peek (Tagged a) Source #
(Store a, Store b) => Store (Either a b) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Either a b) Source # poke :: Either a b -> Poke () Source # peek :: Peek (Either a b) Source #
(Store a, Store b) => Store (a, b) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (a, b) Source # poke :: (a, b) -> Poke () Source # peek :: Peek (a, b) Source #
(Eq k, Hashable k, Store k, Store a) => Store (HashMap k a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (HashMap k a) Source # poke :: HashMap k a -> Poke () Source # peek :: Peek (HashMap k a) Source #
(Ix i, Store i, Store e) => Store (Array i e) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Array i e) Source # poke :: Array i e -> Poke () Source # peek :: Peek (Array i e) Source #
(Ord k, Store k, Store a) => Store (Map k a) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Map k a) Source # poke :: Map k a -> Poke () Source # peek :: Peek (Map k a) Source #
(Ix i, IArray UArray e, Store i, Store e) => Store (UArray i e) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (UArray i e) Source # poke :: UArray i e -> Poke () Source # peek :: Peek (UArray i e) Source #
KnownNat n => Store (StaticSize n ByteString) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (StaticSize n ByteString) Source # poke :: StaticSize n ByteString -> Poke () Source # peek :: Peek (StaticSize n ByteString) Source #
(Store a, Store b, Store c) => Store (a, b, c) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (a, b, c) Source # poke :: (a, b, c) -> Poke () Source # peek :: Peek (a, b, c) Source #
Store a => Store (Const a b) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (Const a b) Source # poke :: Const a b -> Poke () Source # peek :: Peek (Const a b) Source #
(Store a, Store b, Store c, Store d) => Store (a, b, c, d) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (a, b, c, d) Source # poke :: (a, b, c, d) -> Poke () Source # peek :: Peek (a, b, c, d) Source #
(Store a, Store b, Store c, Store d, Store e) => Store (a, b, c, d, e) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (a, b, c, d, e) Source # poke :: (a, b, c, d, e) -> Poke () Source # peek :: Peek (a, b, c, d, e) Source #
(Store a, Store b, Store c, Store d, Store e, Store f) => Store (a, b, c, d, e, f) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (a, b, c, d, e, f) Source # poke :: (a, b, c, d, e, f) -> Poke () Source # peek :: Peek (a, b, c, d, e, f) Source #
(Store a, Store b, Store c, Store d, Store e, Store f, Store g) => Store (a, b, c, d, e, f, g) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (a, b, c, d, e, f, g) Source # poke :: (a, b, c, d, e, f, g) -> Poke () Source # peek :: Peek (a, b, c, d, e, f, g) Source #

data Poke a Source #

`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 `Poke`s write into subsequent portions of the output.

#### Instances

Instances details

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 #
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 Source #

`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

Instances details

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 #
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 #
PrimMonad Peek |
Instance details Defined in Data.Store.Core Associated Types type PrimState Peek Source # Methods primitive :: (State# (PrimState Peek) -> (# State# (PrimState Peek), a #)) -> Peek a Source #
MonadIO Peek |
Instance details Defined in Data.Store.Core Methods liftIO :: IO a -> Peek a
type PrimState Peek |
Instance details Defined in Data.Store.Core type PrimState Peek = RealWorld

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

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 Source #

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.

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

Constructors

PokeException |

Fields

- pokeExByteIndex :: Offset
- pokeExMessage :: Text

#### Instances

Instances details

Eq PokeException |
Instance details Defined in Data.Store.Core Methods (==) :: PokeException -> PokeException -> Bool # (/=) :: PokeException -> PokeException -> Bool #
Show PokeException |
Instance details Defined in Data.Store.Core Methods showsPrec :: Int -> PokeException -> ShowS # show :: PokeException -> String # showList :: [PokeException] -> ShowS #
Exception PokeException |
Instance details Defined in Data.Store.Core Methods toException :: PokeException -> SomeException # fromException :: SomeException -> Maybe PokeException # displayException :: PokeException -> String #

pokeException :: Text -> Poke a Source #

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

## Exceptions thrown by Peek

data PeekException Source #

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.

Constructors

PeekException |

Fields

- peekExBytesFromEnd :: Offset
- peekExMessage :: Text

#### Instances

Instances details

Eq PeekException |
Instance details Defined in Data.Store.Core Methods (==) :: PeekException -> PeekException -> Bool # (/=) :: PeekException -> PeekException -> Bool #
Show PeekException |
Instance details Defined in Data.Store.Core Methods showsPrec :: Int -> PeekException -> ShowS # show :: PeekException -> String # showList :: [PeekException] -> ShowS #
Exception PeekException |
Instance details Defined in Data.Store.Core Methods toException :: PeekException -> SomeException # fromException :: SomeException -> Maybe PeekException # displayException :: PeekException -> String #

peekException :: Text -> Peek a Source #

Throws a `PeekException`.

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

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

## Size type

data Size a Source #

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

Instances details

Contravariant Size Source # |
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 Source #

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

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

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 Source #

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 Source #

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 Source #

Adds a constant amount to a `Size` value.

## Store instances in terms of IsSequence

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

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 () Source #

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 Source #

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 Source #

Implement `size` for an `IsSet` of `Store` instances.

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

Implement `poke` for an `IsSequence` of `Store` instances.

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

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 Source #

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 () Source #

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 Source #

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 Source #

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 () Source #

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

peekOrdMapWith Source #

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) Source #

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

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

## Store instances in terms of Generic

class GStoreSize f Source #

Minimal complete definition

gsize

#### Instances

Instances details

GStoreSize (V1 :: Type -> Type) Source # |
Instance details Defined in Data.Store.Impl Methods gsize :: Size (V1 a)
GStoreSize (U1 :: Type -> Type) Source # |
Instance details Defined in Data.Store.Impl Methods gsize :: Size (U1 a)
Store a => GStoreSize (K1 i a :: Type -> Type) Source # |
Instance details Defined in Data.Store.Impl Methods gsize :: Size (K1 i a a0)
(FitsInByte (SumArity (a :+: b)), GStoreSizeSum 0 (a :+: b)) => GStoreSize (a :+: b) Source # |
Instance details Defined in Data.Store.Impl Methods gsize :: Size ((a :+: b) a0)
(GStoreSize a, GStoreSize b) => GStoreSize (a :*: b) Source # |
Instance details Defined in Data.Store.Impl Methods gsize :: Size ((a :*: b) a0)
GStoreSize f => GStoreSize (M1 i c f) Source # |
Instance details Defined in Data.Store.Impl Methods gsize :: Size (M1 i c f a)

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

class GStorePoke f Source #

Minimal complete definition

gpoke

#### Instances

Instances details

GStorePoke (V1 :: Type -> Type) Source # |
Instance details Defined in Data.Store.Impl Methods gpoke :: V1 a -> Poke ()
GStorePoke (U1 :: Type -> Type) Source # |
Instance details Defined in Data.Store.Impl Methods gpoke :: U1 a -> Poke ()
Store a => GStorePoke (K1 i a :: Type -> Type) Source # |
Instance details Defined in Data.Store.Impl Methods gpoke :: K1 i a a0 -> Poke ()
(FitsInByte (SumArity (a :+: b)), GStorePokeSum 0 (a :+: b)) => GStorePoke (a :+: b) Source # |
Instance details Defined in Data.Store.Impl Methods gpoke :: (a :+: b) a0 -> Poke ()
(GStorePoke a, GStorePoke b) => GStorePoke (a :*: b) Source # |
Instance details Defined in Data.Store.Impl Methods gpoke :: (a :*: b) a0 -> Poke ()
GStorePoke f => GStorePoke (M1 i c f) Source # |
Instance details Defined in Data.Store.Impl Methods gpoke :: M1 i c f a -> Poke ()

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

class GStorePeek f Source #

Minimal complete definition

gpeek

#### Instances

Instances details

GStorePeek (V1 :: Type -> Type) Source # |
Instance details Defined in Data.Store.Impl Methods gpeek :: Peek (V1 a)
GStorePeek (U1 :: Type -> Type) Source # |
Instance details Defined in Data.Store.Impl Methods gpeek :: Peek (U1 a)
Store a => GStorePeek (K1 i a :: Type -> Type) Source # |
Instance details Defined in Data.Store.Impl Methods gpeek :: Peek (K1 i a a0)
(FitsInByte (SumArity (a :+: b)), GStorePeekSum 0 (a :+: b)) => GStorePeek (a :+: b) Source # |
Instance details Defined in Data.Store.Impl Methods gpeek :: Peek ((a :+: b) a0)
(GStorePeek a, GStorePeek b) => GStorePeek (a :*: b) Source # |
Instance details Defined in Data.Store.Impl Methods gpeek :: Peek ((a :*: b) a0)
GStorePeek f => GStorePeek (M1 i c f) Source # |
Instance details Defined in Data.Store.Impl Methods gpeek :: Peek (M1 i c f a)

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

## Peek utilities

skip :: Int -> Peek () Source #

Skip n bytes forward.

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

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 () Source #

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 Source #

Methods

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

#### Instances

Instances details

KnownNat n => IsStaticSize n ByteString Source # |
Instance details Defined in Data.Store.Internal Methods toStaticSize :: ByteString -> Maybe (StaticSize n ByteString) Source #

newtype StaticSize (n :: Nat) a Source #

Constructors

StaticSize |

Fields

- unStaticSize :: a

#### Instances

Instances details

Eq a => Eq (StaticSize n a) Source # |
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) Source # |

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 :: forall r r'. (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) Source # |

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) Source # |
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) Source # |
Instance details Defined in Data.Store.Internal Associated Types type Rep (StaticSize n a) :: Type -> Type 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) Source # |
Instance details Defined in Data.Store.Internal Methods rnf :: StaticSize n a -> ()
KnownNat n => Store (StaticSize n ByteString) Source # |
Instance details Defined in Data.Store.Internal Methods size :: Size (StaticSize n ByteString) Source # poke :: StaticSize n ByteString -> Poke () Source # peek :: Peek (StaticSize n ByteString) Source #
type Rep (StaticSize n a) Source # |
Instance details Defined in Data.Store.Internal type Rep (StaticSize n a) = D1 ('MetaData "StaticSize" "Data.Store.Internal" "store-0.7.6-FwVx7omZGZzJIN2zpQaq7Z" 'True) (C1 ('MetaCons "StaticSize" 'PrefixI 'True) (S1 ('MetaSel ('Just "unStaticSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)))

toStaticSizeEx :: IsStaticSize n a => a -> StaticSize n a Source #

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

staticByteStringExp :: ByteString -> ExpQ Source #

# Orphan instances

Store Bool Source # |
Instance details Methods size :: Size Bool Source # poke :: Bool -> Poke () Source # peek :: Peek Bool Source #
Store Char Source # |
Instance details Methods size :: Size Char Source # poke :: Char -> Poke () Source # peek :: Peek Char Source #
Store Double Source # |
Instance details Methods size :: Size Double Source # poke :: Double -> Poke () Source # peek :: Peek Double Source #
Store Float Source # |
Instance details Methods size :: Size Float Source # poke :: Float -> Poke () Source # peek :: Peek Float Source #
Store Int Source # |
Instance details Methods size :: Size Int Source # poke :: Int -> Poke () Source # peek :: Peek Int Source #
Store Int8 Source # |
Instance details Methods size :: Size Int8 Source # poke :: Int8 -> Poke () Source # peek :: Peek Int8 Source #
Store Int16 Source # |
Instance details Methods size :: Size Int16 Source # poke :: Int16 -> Poke () Source # peek :: Peek Int16 Source #
Store Int32 Source # |
Instance details Methods size :: Size Int32 Source # poke :: Int32 -> Poke () Source # peek :: Peek Int32 Source #
Store Int64 Source # |
Instance details Methods size :: Size Int64 Source # poke :: Int64 -> Poke () Source # peek :: Peek Int64 Source #
Store Integer Source # |
Instance details Methods size :: Size Integer Source # poke :: Integer -> Poke () Source # peek :: Peek Integer Source #
Store Word Source # |
Instance details Methods size :: Size Word Source # poke :: Word -> Poke () Source # peek :: Peek Word Source #
Store Word8 Source # |
Instance details Methods size :: Size Word8 Source # poke :: Word8 -> Poke () Source # peek :: Peek Word8 Source #
Store Word16 Source # |
Instance details Methods size :: Size Word16 Source # poke :: Word16 -> Poke () Source # peek :: Peek Word16 Source #
Store Word32 Source # |
Instance details Methods size :: Size Word32 Source # poke :: Word32 -> Poke () Source # peek :: Peek Word32 Source #
Store Word64 Source # |
Instance details Methods size :: Size Word64 Source # poke :: Word64 -> Poke () Source # peek :: Peek Word64 Source #
Store Exp Source # |
Instance details Methods size :: Size Exp Source # poke :: Exp -> Poke () Source # peek :: Peek Exp Source #
Store Match Source # |
Instance details Methods size :: Size Match Source # poke :: Match -> Poke () Source # peek :: Peek Match Source #
Store Clause Source # |
Instance details Methods size :: Size Clause Source # poke :: Clause -> Poke () Source # peek :: Peek Clause Source #
Store Pat Source # |
Instance details Methods size :: Size Pat Source # poke :: Pat -> Poke () Source # peek :: Peek Pat Source #
Store Type Source # |
Instance details Methods size :: Size Type Source # poke :: Type -> Poke () Source # peek :: Peek Type Source #
Store Dec Source # |
Instance details Methods size :: Size Dec Source # poke :: Dec -> Poke () Source # peek :: Peek Dec Source #
Store Name Source # |
Instance details Methods size :: Size Name Source # poke :: Name -> Poke () Source # peek :: Peek Name Source #
Store FunDep Source # |
Instance details Methods size :: Size FunDep Source # poke :: FunDep -> Poke () Source # peek :: Peek FunDep Source #
Store InjectivityAnn Source # |
Instance details Methods size :: Size InjectivityAnn Source # poke :: InjectivityAnn -> Poke () Source # peek :: Peek InjectivityAnn Source #
Store Overlap Source # |
Instance details Methods size :: Size Overlap Source # poke :: Overlap -> Poke () Source # peek :: Peek Overlap Source #
Store () Source # |
Instance details Methods size :: Size () Source # poke :: () -> Poke () Source # peek :: Peek () Source #
Store CWchar Source # |
Instance details Methods size :: Size CWchar Source # poke :: CWchar -> Poke () Source # peek :: Peek CWchar Source #
Store CUShort Source # |
Instance details Methods size :: Size CUShort Source # poke :: CUShort -> Poke () Source # peek :: Peek CUShort Source #
Store CUSeconds Source # |
Instance details Methods size :: Size CUSeconds Source # poke :: CUSeconds -> Poke () Source # peek :: Peek CUSeconds Source #
Store CULong Source # |
Instance details Methods size :: Size CULong Source # poke :: CULong -> Poke () Source # peek :: Peek CULong Source #
Store CULLong Source # |
Instance details Methods size :: Size CULLong Source # poke :: CULLong -> Poke () Source # peek :: Peek CULLong Source #
Store CUIntPtr Source # |
Instance details Methods size :: Size CUIntPtr Source # poke :: CUIntPtr -> Poke () Source # peek :: Peek CUIntPtr Source #
Store CUIntMax Source # |
Instance details Methods size :: Size CUIntMax Source # poke :: CUIntMax -> Poke () Source # peek :: Peek CUIntMax Source #
Store CUInt Source # |
Instance details Methods size :: Size CUInt Source # poke :: CUInt -> Poke () Source # peek :: Peek CUInt Source #
Store CUChar Source # |
Instance details Methods size :: Size CUChar Source # poke :: CUChar -> Poke () Source # peek :: Peek CUChar Source #
Store CTime Source # |
Instance details Methods size :: Size CTime Source # poke :: CTime -> Poke () Source # peek :: Peek CTime Source #
Store CSize Source # |
Instance details Methods size :: Size CSize Source # poke :: CSize -> Poke () Source # peek :: Peek CSize Source #
Store CSigAtomic Source # |
Instance details Methods size :: Size CSigAtomic Source # poke :: CSigAtomic -> Poke () Source # peek :: Peek CSigAtomic Source #
Store CShort Source # |
Instance details Methods size :: Size CShort Source # poke :: CShort -> Poke () Source # peek :: Peek CShort Source #
Store CSUSeconds Source # |
Instance details Methods size :: Size CSUSeconds Source # poke :: CSUSeconds -> Poke () Source # peek :: Peek CSUSeconds Source #
Store CSChar Source # |
Instance details Methods size :: Size CSChar Source # poke :: CSChar -> Poke () Source # peek :: Peek CSChar Source #
Store CPtrdiff Source # |
Instance details Methods size :: Size CPtrdiff Source # poke :: CPtrdiff -> Poke () Source # peek :: Peek CPtrdiff Source #
Store CLong Source # |
Instance details Methods size :: Size CLong Source # poke :: CLong -> Poke () Source # peek :: Peek CLong Source #
Store CLLong Source # |
Instance details Methods size :: Size CLLong Source # poke :: CLLong -> Poke () Source # peek :: Peek CLLong Source #
Store CIntPtr Source # |
Instance details Methods size :: Size CIntPtr Source # poke :: CIntPtr -> Poke () Source # peek :: Peek CIntPtr Source #
Store CIntMax Source # |
Instance details Methods size :: Size CIntMax Source # poke :: CIntMax -> Poke () Source # peek :: Peek CIntMax Source #
Store CFloat Source # |
Instance details Methods size :: Size CFloat Source # poke :: CFloat -> Poke () Source # peek :: Peek CFloat Source #
Store CDouble Source # |
Instance details Methods size :: Size CDouble Source # poke :: CDouble -> Poke () Source # peek :: Peek CDouble Source #
Store CClock Source # |
Instance details Methods size :: Size CClock Source # poke :: CClock -> Poke () Source # peek :: Peek CClock Source #
Store CChar Source # |
Instance details Methods size :: Size CChar Source # poke :: CChar -> Poke () Source # peek :: Peek CChar Source #
Store CBool Source # |
Instance details Methods size :: Size CBool Source # poke :: CBool -> Poke () Source # peek :: Peek CBool Source #
Store CInt Source # |
Instance details Methods size :: Size CInt Source # poke :: CInt -> Poke () Source # peek :: Peek CInt Source #
Store Fingerprint Source # |
Instance details Methods size :: Size Fingerprint Source # poke :: Fingerprint -> Poke () Source # peek :: Peek Fingerprint Source #
Store WordPtr Source # |
Instance details Methods size :: Size WordPtr Source # poke :: WordPtr -> Poke () Source # peek :: Peek WordPtr Source #
Store IntPtr Source # |
Instance details Methods size :: Size IntPtr Source # poke :: IntPtr -> Poke () Source # peek :: Peek IntPtr Source #
Store All Source # |
Instance details Methods size :: Size All Source # poke :: All -> Poke () Source # peek :: Peek All Source #
Store ByteString Source # |
Instance details Methods size :: Size ByteString Source # poke :: ByteString -> Poke () Source # peek :: Peek ByteString Source #
Store ByteString Source # |
Instance details Methods size :: Size ByteString Source # poke :: ByteString -> Poke () Source # peek :: Peek ByteString Source #
Store Any Source # |
Instance details Methods size :: Size Any Source # poke :: Any -> Poke () Source # peek :: Peek Any Source #
Store PortNumber Source # |
Instance details Methods size :: Size PortNumber Source # poke :: PortNumber -> Poke () Source # peek :: Peek PortNumber Source #
Store Info Source # |
Instance details Methods size :: Size Info Source # poke :: Info -> Poke () Source # peek :: Peek Info Source #
Store Con Source # |
Instance details Methods size :: Size Con Source # poke :: Con -> Poke () Source # peek :: Peek Con Source #
Store NameFlavour Source # |
Instance details Methods size :: Size NameFlavour Source # poke :: NameFlavour -> Poke () Source # peek :: Peek NameFlavour Source #
Store TyVarBndr Source # |
Instance details Methods size :: Size TyVarBndr Source # poke :: TyVarBndr -> Poke () Source # peek :: Peek TyVarBndr Source #
Store Void Source # |
Instance details Methods size :: Size Void Source # poke :: Void -> Poke () Source # peek :: Peek Void Source #
Store Text Source # |
Instance details Methods size :: Size Text Source # poke :: Text -> Poke () Source # peek :: Peek Text Source #
Store Lit Source # |
Instance details Methods size :: Size Lit Source # poke :: Lit -> Poke () Source # peek :: Peek Lit Source #
Store AnnTarget Source # |
Instance details Methods size :: Size AnnTarget Source # poke :: AnnTarget -> Poke () Source # peek :: Peek AnnTarget Source #
Store Bang Source # |
Instance details Methods size :: Size Bang Source # poke :: Bang -> Poke () Source # peek :: Peek Bang Source #
Store Body Source # |
Instance details Methods size :: Size Body Source # poke :: Body -> Poke () Source # peek :: Peek Body Source #
Store Callconv Source # |
Instance details Methods size :: Size Callconv Source # poke :: Callconv -> Poke () Source # peek :: Peek Callconv Source #
Store DerivClause Source # |
Instance details Methods size :: Size DerivClause Source # poke :: DerivClause -> Poke () Source # peek :: Peek DerivClause Source #
Store DerivStrategy Source # |
Instance details Methods size :: Size DerivStrategy Source # poke :: DerivStrategy -> Poke () Source # peek :: Peek DerivStrategy Source #
Store FamilyResultSig Source # |
Instance details Methods size :: Size FamilyResultSig Source # poke :: FamilyResultSig -> Poke () Source # peek :: Peek FamilyResultSig Source #
Store Fixity Source # |
Instance details Methods size :: Size Fixity Source # poke :: Fixity -> Poke () Source # peek :: Peek Fixity Source #
Store FixityDirection Source # |
Instance details Methods size :: Size FixityDirection Source # poke :: FixityDirection -> Poke () Source # peek :: Peek FixityDirection Source #
Store Foreign Source # |
Instance details Methods size :: Size Foreign Source # poke :: Foreign -> Poke () Source # peek :: Peek Foreign Source #
Store Guard Source # |
Instance details Methods size :: Size Guard Source # poke :: Guard -> Poke () Source # peek :: Peek Guard Source #
Store Inline Source # |
Instance details Methods size :: Size Inline Source # poke :: Inline -> Poke () Source # peek :: Peek Inline Source #
Store NameSpace Source # |
Instance details Methods size :: Size NameSpace Source # poke :: NameSpace -> Poke () Source # peek :: Peek NameSpace Source #
Store PatSynArgs Source # |
Instance details Methods size :: Size PatSynArgs Source # poke :: PatSynArgs -> Poke () Source # peek :: Peek PatSynArgs Source #
Store PatSynDir Source # |
Instance details Methods size :: Size PatSynDir Source # poke :: PatSynDir -> Poke () Source # peek :: Peek PatSynDir Source #
Store Phases Source # |
Instance details Methods size :: Size Phases Source # poke :: Phases -> Poke () Source # peek :: Peek Phases Source #
Store Pragma Source # |
Instance details Methods size :: Size Pragma Source # poke :: Pragma -> Poke () Source # peek :: Peek Pragma Source #
Store Range Source # |
Instance details Methods size :: Size Range Source # poke :: Range -> Poke () Source # peek :: Peek Range Source #
Store Role Source # |
Instance details Methods size :: Size Role Source # poke :: Role -> Poke () Source # peek :: Peek Role Source #
Store RuleBndr Source # |
Instance details Methods size :: Size RuleBndr Source # poke :: RuleBndr -> Poke () Source # peek :: Peek RuleBndr Source #
Store RuleMatch Source # |
Instance details Methods size :: Size RuleMatch Source # poke :: RuleMatch -> Poke () Source # peek :: Peek RuleMatch Source #
Store Safety Source # |
Instance details Methods size :: Size Safety Source # poke :: Safety -> Poke () Source # peek :: Peek Safety Source #
Store SourceStrictness Source # |
Instance details Methods size :: Size SourceStrictness Source # poke :: SourceStrictness -> Poke () Source # peek :: Peek SourceStrictness Source #
Store SourceUnpackedness Source # |
Instance details Methods size :: Size SourceUnpackedness Source # poke :: SourceUnpackedness -> Poke () Source # peek :: Peek SourceUnpackedness Source #
Store Stmt Source # |
Instance details Methods size :: Size Stmt Source # poke :: Stmt -> Poke () Source # peek :: Peek Stmt Source #
Store TyLit Source # |
Instance details Methods size :: Size TyLit Source # poke :: TyLit -> Poke () Source # peek :: Peek TyLit Source #
Store TySynEqn Source # |
Instance details Methods size :: Size TySynEqn Source # poke :: TySynEqn -> Poke () Source # peek :: Peek TySynEqn Source #
Store TypeFamilyHead Source # |
Instance details Methods size :: Size TypeFamilyHead Source # poke :: TypeFamilyHead -> Poke () Source # peek :: Peek TypeFamilyHead Source #
Store ModName Source # |
Instance details Methods size :: Size ModName Source # poke :: ModName -> Poke () Source # peek :: Peek ModName Source #
Store OccName Source # |
Instance details Methods size :: Size OccName Source # poke :: OccName -> Poke () Source # peek :: Peek OccName Source #
Store PkgName Source # |
Instance details Methods size :: Size PkgName Source # poke :: PkgName -> Poke () Source # peek :: Peek PkgName Source #
Store IntSet Source # |
Instance details Methods size :: Size IntSet Source # poke :: IntSet -> Poke () Source # peek :: Peek IntSet Source #
Store Day Source # |
Instance details Methods size :: Size Day Source # poke :: Day -> Poke () Source # peek :: Peek Day Source #
Store DiffTime Source # |
Instance details Methods size :: Size DiffTime Source # poke :: DiffTime -> Poke () Source # peek :: Peek DiffTime Source #
Store UTCTime Source # |
Instance details Methods size :: Size UTCTime Source # poke :: UTCTime -> Poke () Source # peek :: Peek UTCTime Source #
Store TimeSpec Source # |
Instance details Methods size :: Size TimeSpec Source # poke :: TimeSpec -> Poke () Source # peek :: Peek TimeSpec Source #
Store ShortByteString Source # |
Instance details Methods size :: Size ShortByteString Source # poke :: ShortByteString -> Poke () Source # peek :: Peek ShortByteString Source #
Store a => Store [a] Source # |
Instance details Methods size :: Size [a] Source # poke :: [a] -> Poke () Source # peek :: Peek [a] Source #
Store a => Store (Maybe a) Source # |
Instance details Methods size :: Size (Maybe a) Source # poke :: Maybe a -> Poke () Source # peek :: Peek (Maybe a) Source #
Store a => Store (Ratio a) Source # |
Instance details Methods size :: Size (Ratio a) Source # poke :: Ratio a -> Poke () Source # peek :: Peek (Ratio a) Source #
Store (StablePtr a) Source # |
Instance details Methods size :: Size (StablePtr a) Source # poke :: StablePtr a -> Poke () Source # peek :: Peek (StablePtr a) Source #
Store (Ptr a) Source # |
Instance details Methods size :: Size (Ptr a) Source # poke :: Ptr a -> Poke () Source # peek :: Peek (Ptr a) Source #
Store (FunPtr a) Source # |
Instance details Methods size :: Size (FunPtr a) Source # poke :: FunPtr a -> Poke () Source # peek :: Peek (FunPtr a) Source #
Store (Fixed a) Source # |
Instance details Methods size :: Size (Fixed a) Source # poke :: Fixed a -> Poke () Source # peek :: Peek (Fixed a) Source #
Store a => Store (Identity a) Source # |
Instance details Methods size :: Size (Identity a) Source # poke :: Identity a -> Poke () Source # peek :: Peek (Identity a) Source #
Store a => Store (Complex a) Source # |
Instance details Methods size :: Size (Complex a) Source # poke :: Complex a -> Poke () Source # peek :: Peek (Complex a) Source #
Store a => Store (Sum a) Source # |
Instance details Methods size :: Size (Sum a) Source # poke :: Sum a -> Poke () Source # peek :: Peek (Sum a) Source #
Store a => Store (Product a) Source # |
Instance details Methods size :: Size (Product a) Source # poke :: Product a -> Poke () Source # peek :: Peek (Product a) Source #
Store a => Store (NonEmpty a) Source # |
Instance details Methods size :: Size (NonEmpty a) Source # poke :: NonEmpty a -> Poke () Source # peek :: Peek (NonEmpty a) Source #
Store a => Store (Last a) Source # |
Instance details Methods size :: Size (Last a) Source # poke :: Last a -> Poke () Source # peek :: Peek (Last a) Source #
Store a => Store (First a) Source # |
Instance details Methods size :: Size (First a) Source # poke :: First a -> Poke () Source # peek :: Peek (First a) Source #
Store a => Store (Dual a) Source # |
Instance details Methods size :: Size (Dual a) Source # poke :: Dual a -> Poke () Source # peek :: Peek (Dual a) Source #
Prim a => Store (PrimStorable a) Source # |
Instance details Methods size :: Size (PrimStorable a) Source # poke :: PrimStorable a -> Poke () Source # peek :: Peek (PrimStorable a) Source #
(Eq a, Hashable a, Store a) => Store (HashSet a) Source # |
Instance details Methods size :: Size (HashSet a) Source # poke :: HashSet a -> Poke () Source # peek :: Peek (HashSet a) Source #
Store (Vector Bool) Source # |
Instance details Methods size :: Size (Vector Bool) Source # poke :: Vector Bool -> Poke () Source # peek :: Peek (Vector Bool) Source #
Store (Vector Char) Source # |
Instance details Methods size :: Size (Vector Char) Source # poke :: Vector Char -> Poke () Source # peek :: Peek (Vector Char) Source #
Store (Vector Double) Source # |
Instance details Methods size :: Size (Vector Double) Source # poke :: Vector Double -> Poke () Source # peek :: Peek (Vector Double) Source #
Store (Vector Float) Source # |
Instance details Methods size :: Size (Vector Float) Source # poke :: Vector Float -> Poke () Source # peek :: Peek (Vector Float) Source #
Store (Vector Int) Source # |
Instance details Methods size :: Size (Vector Int) Source # poke :: Vector Int -> Poke () Source # peek :: Peek (Vector Int) Source #
Store (Vector Int8) Source # |
Instance details Methods size :: Size (Vector Int8) Source # poke :: Vector Int8 -> Poke () Source # peek :: Peek (Vector Int8) Source #
Store (Vector Int16) Source # |
Instance details Methods size :: Size (Vector Int16) Source # poke :: Vector Int16 -> Poke () Source # peek :: Peek (Vector Int16) Source #
Store (Vector Int32) Source # |
Instance details Methods size :: Size (Vector Int32) Source # poke :: Vector Int32 -> Poke () Source # peek :: Peek (Vector Int32) Source #
Store (Vector Int64) Source # |
Instance details Methods size :: Size (Vector Int64) Source # poke :: Vector Int64 -> Poke () Source # peek :: Peek (Vector Int64) Source #
Store (Vector Word) Source # |
Instance details Methods size :: Size (Vector Word) Source # poke :: Vector Word -> Poke () Source # peek :: Peek (Vector Word) Source #
Store (Vector Word8) Source # |
Instance details Methods size :: Size (Vector Word8) Source # poke :: Vector Word8 -> Poke () Source # peek :: Peek (Vector Word8) Source #
Store (Vector Word16) Source # |
Instance details Methods size :: Size (Vector Word16) Source # poke :: Vector Word16 -> Poke () Source # peek :: Peek (Vector Word16) Source #
Store (Vector Word32) Source # |
Instance details Methods size :: Size (Vector Word32) Source # poke :: Vector Word32 -> Poke () Source # peek :: Peek (Vector Word32) Source #
Store (Vector Word64) Source # |
Instance details Methods size :: Size (Vector Word64) Source # poke :: Vector Word64 -> Poke () Source # peek :: Peek (Vector Word64) Source #
Store (Vector ()) Source # |
Instance details Methods size :: Size (Vector ()) Source # poke :: Vector () -> Poke () Source # peek :: Peek (Vector ()) Source #
(Store (Vector a), Store (Vector b)) => Store (Vector (a, b)) Source # |
Instance details Methods size :: Size (Vector (a, b)) Source # poke :: Vector (a, b) -> Poke () Source # peek :: Peek (Vector (a, b)) Source #
(Store (Vector a), Store (Vector b), Store (Vector c)) => Store (Vector (a, b, c)) Source # |
Instance details Methods size :: Size (Vector (a, b, c)) Source # poke :: Vector (a, b, c) -> Poke () Source # peek :: Peek (Vector (a, b, c)) Source #
(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d)) => Store (Vector (a, b, c, d)) Source # |
Instance details Methods size :: Size (Vector (a, b, c, d)) Source # poke :: Vector (a, b, c, d) -> Poke () Source # peek :: Peek (Vector (a, b, c, d)) Source #
(Store (Vector a), Store (Vector b), Store (Vector c), Store (Vector d), Store (Vector e)) => Store (Vector (a, b, c, d, e)) Source # |
Instance details Methods size :: Size (Vector (a, b, c, d, e)) Source # poke :: Vector (a, b, c, d, e) -> Poke () Source # peek :: Peek (Vector (a, b, c, d, e)) Source #
(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)) Source # |
Instance details Methods size :: Size (Vector (a, b, c, d, e, f)) Source # poke :: Vector (a, b, c, d, e, f) -> Poke () Source # peek :: Peek (Vector (a, b, c, d, e, f)) Source #
Store (Vector (f (g a))) => Store (Vector (Compose f g a)) Source # |
Instance details Methods size :: Size (Vector (Compose f g a)) Source # poke :: Vector (Compose f g a) -> Poke () Source # peek :: Peek (Vector (Compose f g a)) Source #
Store (Vector All) Source # |
Instance details Methods size :: Size (Vector All) Source # poke :: Vector All -> Poke () Source # peek :: Peek (Vector All) Source #
Store (Vector a) => Store (Vector (Identity a)) Source # |
Instance details Methods size :: Size (Vector (Identity a)) Source # poke :: Vector (Identity a) -> Poke () Source # peek :: Peek (Vector (Identity a)) Source #
Store (Vector a) => Store (Vector (Complex a)) Source # |
Instance details Methods size :: Size (Vector (Complex a)) Source # poke :: Vector (Complex a) -> Poke () Source # peek :: Peek (Vector (Complex a)) Source #
Store (Vector a) => Store (Vector (Sum a)) Source # |
Instance details Methods size :: Size (Vector (Sum a)) Source # poke :: Vector (Sum a) -> Poke () Source # peek :: Peek (Vector (Sum a)) Source #
Store (Vector a) => Store (Vector (Product a)) Source # |
Instance details Methods size :: Size (Vector (Product a)) Source # poke :: Vector (Product a) -> Poke () Source # peek :: Peek (Vector (Product a)) Source #
Store (Vector a) => Store (Vector (Dual a)) Source # |
Instance details Methods size :: Size (Vector (Dual a)) Source # poke :: Vector (Dual a) -> Poke () Source # peek :: Peek (Vector (Dual a)) Source #
Store (Vector a) => Store (Vector (Down a)) Source # |
Instance details Methods size :: Size (Vector (Down a)) Source # poke :: Vector (Down a) -> Poke () Source # peek :: Peek (Vector (Down a)) Source #
Store (Vector (f a)) => Store (Vector (Alt f a)) Source # |
Instance details Methods size :: Size (Vector (Alt f a)) Source # poke :: Vector (Alt f a) -> Poke () Source # peek :: Peek (Vector (Alt f a)) Source #
Store (Vector a) => Store (Vector (Const a b)) Source # |
Instance details Methods size :: Size (Vector (Const a b)) Source # poke :: Vector (Const a b) -> Poke () Source # peek :: Peek (Vector (Const a b)) Source #
(Store (Vector a), Store (Vector b)) => Store (Vector (Arg a b)) Source # |
Instance details Methods size :: Size (Vector (Arg a b)) Source # poke :: Vector (Arg a b) -> Poke () Source # peek :: Peek (Vector (Arg a b)) Source #
Store (Vector Any) Source # |
Instance details Methods size :: Size (Vector Any) Source # poke :: Vector Any -> Poke () Source # peek :: Peek (Vector Any) Source #
Store (Vector a) => Store (Vector (First a)) Source # |
Instance details Methods size :: Size (Vector (First a)) Source # poke :: Vector (First a) -> Poke () Source # peek :: Peek (Vector (First a)) Source #
Store (Vector a) => Store (Vector (Last a)) Source # |
Instance details Methods size :: Size (Vector (Last a)) Source # poke :: Vector (Last a) -> Poke () Source # peek :: Peek (Vector (Last a)) Source #
Store (Vector a) => Store (Vector (Max a)) Source # |
Instance details Methods size :: Size (Vector (Max a)) Source # poke :: Vector (Max a) -> Poke () Source # peek :: Peek (Vector (Max a)) Source #
Store (Vector a) => Store (Vector (Min a)) Source # |
Instance details Methods size :: Size (Vector (Min a)) Source # poke :: Vector (Min a) -> Poke () Source # peek :: Peek (Vector (Min a)) Source #
Store (Vector a) => Store (Vector (WrappedMonoid a)) Source # |
Instance details Methods size :: Size (Vector (WrappedMonoid a)) Source # poke :: Vector (WrappedMonoid a) -> Poke () Source # peek :: Peek (Vector (WrappedMonoid a)) Source #
Storable a => Store (Vector a) Source # |
Instance details Methods size :: Size (Vector a) Source # poke :: Vector a -> Poke () Source # peek :: Peek (Vector a) Source #
Store (Vector Char) Source # |
Instance details Methods size :: Size (Vector Char) Source # poke :: Vector Char -> Poke () Source # peek :: Peek (Vector Char) Source #
Store (Vector Double) Source # |
Instance details Methods size :: Size (Vector Double) Source # poke :: Vector Double -> Poke () Source # peek :: Peek (Vector Double) Source #
Store (Vector Float) Source # |
Instance details Methods size :: Size (Vector Float) Source # poke :: Vector Float -> Poke () Source # peek :: Peek (Vector Float) Source #
Store (Vector Int) Source # |
Instance details Methods size :: Size (Vector Int) Source # poke :: Vector Int -> Poke () Source # peek :: Peek (Vector Int) Source #
Store (Vector Int8) Source # |
Instance details Methods size :: Size (Vector Int8) Source # poke :: Vector Int8 -> Poke () Source # peek :: Peek (Vector Int8) Source #
Store (Vector Int16) Source # |
Instance details Methods size :: Size (Vector Int16) Source # poke :: Vector Int16 -> Poke () Source # peek :: Peek (Vector Int16) Source #
Store (Vector Int32) Source # |
Instance details Methods size :: Size (Vector Int32) Source # poke :: Vector Int32 -> Poke () Source # peek :: Peek (Vector Int32) Source #
Store (Vector Int64) Source # |
Instance details Methods size :: Size (Vector Int64) Source # poke :: Vector Int64 -> Poke () Source # peek :: Peek (Vector Int64) Source #
Store (Vector (StablePtr a)) Source # |
Instance details Methods size :: Size (Vector (StablePtr a)) Source # poke :: Vector (StablePtr a) -> Poke () Source # peek :: Peek (Vector (StablePtr a)) Source #
Store (Vector Word) Source # |
Instance details Methods size :: Size (Vector Word) Source # poke :: Vector Word -> Poke () Source # peek :: Peek (Vector Word) Source #
Store (Vector Word8) Source # |
Instance details Methods size :: Size (Vector Word8) Source # poke :: Vector Word8 -> Poke () Source # peek :: Peek (Vector Word8) Source #
Store (Vector Word16) Source # |
Instance details Methods size :: Size (Vector Word16) Source # poke :: Vector Word16 -> Poke () Source # peek :: Peek (Vector Word16) Source #
Store (Vector Word32) Source # |
Instance details Methods size :: Size (Vector Word32) Source # poke :: Vector Word32 -> Poke () Source # peek :: Peek (Vector Word32) Source #
Store (Vector Word64) Source # |
Instance details Methods size :: Size (Vector Word64) Source # poke :: Vector Word64 -> Poke () Source # peek :: Peek (Vector Word64) Source #
Store (Vector (Ptr a)) Source # |
Instance details Methods size :: Size (Vector (Ptr a)) Source # poke :: Vector (Ptr a) -> Poke () Source # peek :: Peek (Vector (Ptr a)) Source #
Store (Vector (FunPtr a)) Source # |
Instance details Methods size :: Size (Vector (FunPtr a)) Source # poke :: Vector (FunPtr a) -> Poke () Source # peek :: Peek (Vector (FunPtr a)) Source #
Store (Vector Fd) Source # |
Instance details Methods size :: Size (Vector Fd) Source # poke :: Vector Fd -> Poke () Source # peek :: Peek (Vector Fd) Source #
Store (Vector CUid) Source # |
Instance details Methods size :: Size (Vector CUid) Source # poke :: Vector CUid -> Poke () Source # peek :: Peek (Vector CUid) Source #
Store (Vector CTimer) Source # |
Instance details Methods size :: Size (Vector CTimer) Source # poke :: Vector CTimer -> Poke () Source # peek :: Peek (Vector CTimer) Source #
Store (Vector CSpeed) Source # |
Instance details Methods size :: Size (Vector CSpeed) Source # poke :: Vector CSpeed -> Poke () Source # peek :: Peek (Vector CSpeed) Source #
Store (Vector CRLim) Source # |
Instance details Methods size :: Size (Vector CRLim) Source # poke :: Vector CRLim -> Poke () Source # peek :: Peek (Vector CRLim) Source #
Store (Vector CNlink) Source # |
Instance details Methods size :: Size (Vector CNlink) Source # poke :: Vector CNlink -> Poke () Source # peek :: Peek (Vector CNlink) Source #
Store (Vector CKey) Source # |
Instance details Methods size :: Size (Vector CKey) Source # poke :: Vector CKey -> Poke () Source # peek :: Peek (Vector CKey) Source #
Store (Vector CId) Source # |
Instance details Methods size :: Size (Vector CId) Source # poke :: Vector CId -> Poke () Source # peek :: Peek (Vector CId) Source #
Store (Vector CGid) Source # |
Instance details Methods size :: Size (Vector CGid) Source # poke :: Vector CGid -> Poke () Source # peek :: Peek (Vector CGid) Source #
Store (Vector CFsFilCnt) Source # |
Instance details Methods size :: Size (Vector CFsFilCnt) Source # poke :: Vector CFsFilCnt -> Poke () Source # peek :: Peek (Vector CFsFilCnt) Source #
Store (Vector CFsBlkCnt) Source # |
Instance details Methods size :: Size (Vector CFsBlkCnt) Source # poke :: Vector CFsBlkCnt -> Poke () Source # peek :: Peek (Vector CFsBlkCnt) Source #
Store (Vector CClockId) Source # |
Instance details Methods size :: Size (Vector CClockId) Source # poke :: Vector CClockId -> Poke () Source # peek :: Peek (Vector CClockId) Source #
Store (Vector CCc) Source # |
Instance details Methods size :: Size (Vector CCc) Source # poke :: Vector CCc -> Poke () Source # peek :: Peek (Vector CCc) Source #
Store (Vector CBlkSize) Source # |
Instance details Methods size :: Size (Vector CBlkSize) Source # poke :: Vector CBlkSize -> Poke () Source # peek :: Peek (Vector CBlkSize) Source #
Store (Vector CBlkCnt) Source # |
Instance details Methods size :: Size (Vector CBlkCnt) Source # poke :: Vector CBlkCnt -> Poke () Source # peek :: Peek (Vector CBlkCnt) Source #
Store (Vector CSsize) Source # |
Instance details Methods size :: Size (Vector CSsize) Source # poke :: Vector CSsize -> Poke () Source # peek :: Peek (Vector CSsize) Source #
Store (Vector CTcflag) Source # |
Instance details Methods size :: Size (Vector CTcflag) Source # poke :: Vector CTcflag -> Poke () Source # peek :: Peek (Vector CTcflag) Source #
Store (Vector COff) Source # |
Instance details Methods size :: Size (Vector COff) Source # poke :: Vector COff -> Poke () Source # peek :: Peek (Vector COff) Source #
Store (Vector CPid) Source # |
Instance details Methods size :: Size (Vector CPid) Source # poke :: Vector CPid -> Poke () Source # peek :: Peek (Vector CPid) Source #
Store (Vector CIno) Source # |
Instance details Methods size :: Size (Vector CIno) Source # poke :: Vector CIno -> Poke () Source # peek :: Peek (Vector CIno) Source #
Store (Vector CDev) Source # |
Instance details Methods size :: Size (Vector CDev) Source # poke :: Vector CDev -> Poke () Source # peek :: Peek (Vector CDev) Source #
Store (Vector CMode) Source # |
Instance details Methods size :: Size (Vector CMode) Source # poke :: Vector CMode -> Poke () Source # peek :: Peek (Vector CMode) Source #
Store (Vector CWchar) Source # |
Instance details Methods size :: Size (Vector CWchar) Source # poke :: Vector CWchar -> Poke () Source # peek :: Peek (Vector CWchar) Source #
Store (Vector CUShort) Source # |
Instance details Methods size :: Size (Vector CUShort) Source # poke :: Vector CUShort -> Poke () Source # peek :: Peek (Vector CUShort) Source #
Store (Vector CUSeconds) Source # |
Instance details Methods size :: Size (Vector CUSeconds) Source # poke :: Vector CUSeconds -> Poke () Source # peek :: Peek (Vector CUSeconds) Source #
Store (Vector CULong) Source # |
Instance details Methods size :: Size (Vector CULong) Source # poke :: Vector CULong -> Poke () Source # peek :: Peek (Vector CULong) Source #
Store (Vector CULLong) Source # |
Instance details Methods size :: Size (Vector CULLong) Source # poke :: Vector CULLong -> Poke () Source # peek :: Peek (Vector CULLong) Source #
Store (Vector CUIntPtr) Source # |
Instance details Methods size :: Size (Vector CUIntPtr) Source # poke :: Vector CUIntPtr -> Poke () Source # peek :: Peek (Vector CUIntPtr) Source #
Store (Vector CUIntMax) Source # |
Instance details Methods size :: Size (Vector CUIntMax) Source # poke :: Vector CUIntMax -> Poke () Source # peek :: Peek (Vector CUIntMax) Source #
Store (Vector CUInt) Source # |
Instance details Methods size :: Size (Vector CUInt) Source # poke :: Vector CUInt -> Poke () Source # peek :: Peek (Vector CUInt) Source #
Store (Vector CUChar) Source # |
Instance details Methods size :: Size (Vector CUChar) Source # poke :: Vector CUChar -> Poke () Source # peek :: Peek (Vector CUChar) Source #
Store (Vector CTime) Source # |
Instance details Methods size :: Size (Vector CTime) Source # poke :: Vector CTime -> Poke () Source # peek :: Peek (Vector CTime) Source #
Store (Vector CSize) Source # |
Instance details Methods size :: Size (Vector CSize) Source # poke :: Vector CSize -> Poke () Source # peek :: Peek (Vector CSize) Source #
Store (Vector CSigAtomic) Source # |
Instance details Methods size :: Size (Vector CSigAtomic) Source # poke :: Vector CSigAtomic -> Poke () Source # peek :: Peek (Vector CSigAtomic) Source #
Store (Vector CShort) Source # |
Instance details Methods size :: Size (Vector CShort) Source # poke :: Vector CShort -> Poke () Source # peek :: Peek (Vector CShort) Source #
Store (Vector CSUSeconds) Source # |
Instance details Methods size :: Size (Vector CSUSeconds) Source # poke :: Vector CSUSeconds -> Poke () Source # peek :: Peek (Vector CSUSeconds) Source #
Store (Vector CSChar) Source # |
Instance details Methods size :: Size (Vector CSChar) Source # poke :: Vector CSChar -> Poke () Source # peek :: Peek (Vector CSChar) Source #
Store (Vector CPtrdiff) Source # |
Instance details Methods size :: Size (Vector CPtrdiff) Source # poke :: Vector CPtrdiff -> Poke () Source # peek :: Peek (Vector CPtrdiff) Source #
Store (Vector CLong) Source # |
Instance details Methods size :: Size (Vector CLong) Source # poke :: Vector CLong -> Poke () Source # peek :: Peek (Vector CLong) Source #
Store (Vector CLLong) Source # |
Instance details Methods size :: Size (Vector CLLong) Source # poke :: Vector CLLong -> Poke () Source # peek :: Peek (Vector CLLong) Source #
Store (Vector CIntPtr) Source # |
Instance details Methods size :: Size (Vector CIntPtr) Source # poke :: Vector CIntPtr -> Poke () Source # peek :: Peek (Vector CIntPtr) Source #
Store (Vector CIntMax) Source # |
Instance details Methods size :: Size (Vector CIntMax) Source # poke :: Vector CIntMax -> Poke () Source # peek :: Peek (Vector CIntMax) Source #
Store (Vector CFloat) Source # |
Instance details Methods size :: Size (Vector CFloat) Source # poke :: Vector CFloat -> Poke () Source # peek :: Peek (Vector CFloat) Source #
Store (Vector CDouble) Source # |
Instance details Methods size :: Size (Vector CDouble) Source # poke :: Vector CDouble -> Poke () Source # peek :: Peek (Vector CDouble) Source #
Store (Vector CClock) Source # |
Instance details Methods size :: Size (Vector CClock) Source # poke :: Vector CClock -> Poke () Source # peek :: Peek (Vector CClock) Source #
Store (Vector CChar) Source # |
Instance details Methods size :: Size (Vector CChar) Source # poke :: Vector CChar -> Poke () Source # peek :: Peek (Vector CChar) Source #
Store (Vector CBool) Source # |
Instance details Methods size :: Size (Vector CBool) Source # poke :: Vector CBool -> Poke () Source # peek :: Peek (Vector CBool) Source #
Store (Vector CInt) Source # |
Instance details Methods size :: Size (Vector CInt) Source # poke :: Vector CInt -> Poke () Source # peek :: Peek (Vector CInt) Source #
Prim a => Store (Vector (Identity a)) Source # |
Instance details Methods size :: Size (Vector (Identity a)) Source # poke :: Vector (Identity a) -> Poke () Source # peek :: Peek (Vector (Identity a)) Source #
Prim a => Store (Vector (Sum a)) Source # |
Instance details Methods size :: Size (Vector (Sum a)) Source # poke :: Vector (Sum a) -> Poke () Source # peek :: Peek (Vector (Sum a)) Source #
Prim a => Store (Vector (Product a)) Source # |
Instance details Methods size :: Size (Vector (Product a)) Source # poke :: Vector (Product a) -> Poke () Source # peek :: Peek (Vector (Product a)) Source #
Prim a => Store (Vector (Dual a)) Source # |
Instance details Methods size :: Size (Vector (Dual a)) Source # poke :: Vector (Dual a) -> Poke () Source # peek :: Peek (Vector (Dual a)) Source #
Prim a => Store (Vector (Down a)) Source # |
Instance details Methods size :: Size (Vector (Down a)) Source # poke :: Vector (Down a) -> Poke () Source # peek :: Peek (Vector (Down a)) Source #
Prim a => Store (Vector (Const a b)) Source # |
Instance details Methods size :: Size (Vector (Const a b)) Source # poke :: Vector (Const a b) -> Poke () Source # peek :: Peek (Vector (Const a b)) Source #
Prim a => Store (Vector (First a)) Source # |
Instance details Methods size :: Size (Vector (First a)) Source # poke :: Vector (First a) -> Poke () Source # peek :: Peek (Vector (First a)) Source #
Prim a => Store (Vector (Last a)) Source # |
Instance details Methods size :: Size (Vector (Last a)) Source # poke :: Vector (Last a) -> Poke () Source # peek :: Peek (Vector (Last a)) Source #
Prim a => Store (Vector (Max a)) Source # |
Instance details Methods size :: Size (Vector (Max a)) Source # poke :: Vector (Max a) -> Poke () Source # peek :: Peek (Vector (Max a)) Source #
Prim a => Store (Vector (Min a)) Source # |
Instance details Methods size :: Size (Vector (Min a)) Source # poke :: Vector (Min a) -> Poke () Source # peek :: Peek (Vector (Min a)) Source #
Store a => Store (Vector a) Source # |
Instance details Methods size :: Size (Vector a) Source # poke :: Vector a -> Poke () Source # peek :: Peek (Vector a) Source #
Store a => Store (IntMap a) Source # |
Instance details Methods size :: Size (IntMap a) Source # poke :: IntMap a -> Poke () Source # peek :: Peek (IntMap a) Source #
Store a => Store (Seq a) Source # |
Instance details Methods size :: Size (Seq a) Source # poke :: Seq a -> Poke () Source # peek :: Peek (Seq a) Source #
(Store a, Ord a) => Store (Set a) Source # |
Instance details Methods size :: Size (Set a) Source # poke :: Set a -> Poke () Source # peek :: Peek (Set a) Source #
(Store a, Store b) => Store (Either a b) Source # |
Instance details Methods size :: Size (Either a b) Source # poke :: Either a b -> Poke () Source # peek :: Peek (Either a b) Source #
(Store a, Store b) => Store (a, b) Source # |
Instance details Methods size :: Size (a, b) Source # poke :: (a, b) -> Poke () Source # peek :: Peek (a, b) Source #
(Eq k, Hashable k, Store k, Store a) => Store (HashMap k a) Source # |
Instance details Methods size :: Size (HashMap k a) Source # poke :: HashMap k a -> Poke () Source # peek :: Peek (HashMap k a) Source #
(Ix i, Store i, Store e) => Store (Array i e) Source # |
Instance details Methods size :: Size (Array i e) Source # poke :: Array i e -> Poke () Source # peek :: Peek (Array i e) Source #
(Ord k, Store k, Store a) => Store (Map k a) Source # |
Instance details Methods size :: Size (Map k a) Source # poke :: Map k a -> Poke () Source # peek :: Peek (Map k a) Source #
(Ix i, IArray UArray e, Store i, Store e) => Store (UArray i e) Source # |
Instance details Methods size :: Size (UArray i e) Source # poke :: UArray i e -> Poke () Source # peek :: Peek (UArray i e) Source #
(Store a, Store b, Store c) => Store (a, b, c) Source # |
Instance details Methods size :: Size (a, b, c) Source # poke :: (a, b, c) -> Poke () Source # peek :: Peek (a, b, c) Source #
Store a => Store (Const a b) Source # |
Instance details Methods size :: Size (Const a b) Source # poke :: Const a b -> Poke () Source # peek :: Peek (Const a b) Source #
(Store a, Store b, Store c, Store d) => Store (a, b, c, d) Source # |
Instance details Methods size :: Size (a, b, c, d) Source # poke :: (a, b, c, d) -> Poke () Source # peek :: Peek (a, b, c, d) Source #
(Store a, Store b, Store c, Store d, Store e) => Store (a, b, c, d, e) Source # |
Instance details Methods size :: Size (a, b, c, d, e) Source # poke :: (a, b, c, d, e) -> Poke () Source # peek :: Peek (a, b, c, d, e) Source #
(Store a, Store b, Store c, Store d, Store e, Store f) => Store (a, b, c, d, e, f) Source # |
Instance details Methods size :: Size (a, b, c, d, e, f) Source # poke :: (a, b, c, d, e, f) -> Poke () Source # peek :: Peek (a, b, c, d, e, f) Source #
(Store a, Store b, Store c, Store d, Store e, Store f, Store g) => Store (a, b, c, d, e, f, g) Source # |
Instance details Methods size :: Size (a, b, c, d, e, f, g) Source # poke :: (a, b, c, d, e, f, g) -> Poke () Source # peek :: Peek (a, b, c, d, e, f, g) Source #