Copyright | (c) Roman Leshchinskiy 2009-2012 |
---|---|
License | BSD-style |
Maintainer | Roman Leshchinskiy <rl@cse.unsw.edu.au> |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Data.Primitive.Types
Description
Basic types and classes for primitive array operations
Synopsis
- class Prim a where
- sizeOf# :: a -> Int#
- alignment# :: a -> Int#
- indexByteArray# :: ByteArray# -> Int# -> a
- readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, a #)
- writeByteArray# :: MutableByteArray# s -> Int# -> a -> State# s -> State# s
- setByteArray# :: MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s
- indexOffAddr# :: Addr# -> Int# -> a
- readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, a #)
- writeOffAddr# :: Addr# -> Int# -> a -> State# s -> State# s
- setOffAddr# :: Addr# -> Int# -> Int# -> a -> State# s -> State# s
- sizeOf :: Prim a => a -> Int
- alignment :: Prim a => a -> Int
- defaultSetByteArray# :: Prim a => MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s
- defaultSetOffAddr# :: Prim a => Addr# -> Int# -> Int# -> a -> State# s -> State# s
- newtype PrimStorable a = PrimStorable {
- getPrimStorable :: a
- data Ptr a = Ptr Addr#
Documentation
Class of types supporting primitive array operations. This includes
interfacing with GC-managed memory (functions suffixed with ByteArray#
)
and interfacing with unmanaged memory (functions suffixed with Addr#
).
Endianness is platform-dependent.
Methods
Size of values of type a
. The argument is not used.
alignment# :: a -> Int# #
Alignment of values of type a
. The argument is not used.
indexByteArray# :: ByteArray# -> Int# -> a #
Read a value from the array. The offset is in elements of type
a
rather than in bytes.
readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, a #) #
Read a value from the mutable array. The offset is in elements of type
a
rather than in bytes.
writeByteArray# :: MutableByteArray# s -> Int# -> a -> State# s -> State# s #
Write a value to the mutable array. The offset is in elements of type
a
rather than in bytes.
setByteArray# :: MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s #
Fill a slice of the mutable array with a value. The offset and length
of the chunk are in elements of type a
rather than in bytes.
indexOffAddr# :: Addr# -> Int# -> a #
Read a value from a memory position given by an address and an offset.
The memory block the address refers to must be immutable. The offset is in
elements of type a
rather than in bytes.
readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, a #) #
Read a value from a memory position given by an address and an offset.
The offset is in elements of type a
rather than in bytes.
writeOffAddr# :: Addr# -> Int# -> a -> State# s -> State# s #
Write a value to a memory position given by an address and an offset.
The offset is in elements of type a
rather than in bytes.
setOffAddr# :: Addr# -> Int# -> Int# -> a -> State# s -> State# s #
Fill a memory block given by an address, an offset and a length.
The offset and length are in elements of type a
rather than in bytes.
Instances
Prim Char # | |
Defined in Data.Primitive.Types Methods alignment# :: Char -> Int# # indexByteArray# :: ByteArray# -> Int# -> Char # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Char #) # writeByteArray# :: MutableByteArray# s -> Int# -> Char -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Char -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Char # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Char #) # writeOffAddr# :: Addr# -> Int# -> Char -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Char -> State# s -> State# s # | |
Prim Double # | |
Defined in Data.Primitive.Types Methods alignment# :: Double -> Int# # indexByteArray# :: ByteArray# -> Int# -> Double # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Double #) # writeByteArray# :: MutableByteArray# s -> Int# -> Double -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Double -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Double # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Double #) # writeOffAddr# :: Addr# -> Int# -> Double -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Double -> State# s -> State# s # | |
Prim Float # | |
Defined in Data.Primitive.Types Methods alignment# :: Float -> Int# # indexByteArray# :: ByteArray# -> Int# -> Float # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Float #) # writeByteArray# :: MutableByteArray# s -> Int# -> Float -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Float -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Float # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Float #) # writeOffAddr# :: Addr# -> Int# -> Float -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Float -> State# s -> State# s # | |
Prim Int # | |
Defined in Data.Primitive.Types Methods alignment# :: Int -> Int# # indexByteArray# :: ByteArray# -> Int# -> Int # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int #) # writeByteArray# :: MutableByteArray# s -> Int# -> Int -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Int -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Int # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Int #) # writeOffAddr# :: Addr# -> Int# -> Int -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Int -> State# s -> State# s # | |
Prim Int8 # | |
Defined in Data.Primitive.Types Methods alignment# :: Int8 -> Int# # indexByteArray# :: ByteArray# -> Int# -> Int8 # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int8 #) # writeByteArray# :: MutableByteArray# s -> Int# -> Int8 -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Int8 -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Int8 # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Int8 #) # writeOffAddr# :: Addr# -> Int# -> Int8 -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Int8 -> State# s -> State# s # | |
Prim Int16 # | |
Defined in Data.Primitive.Types Methods alignment# :: Int16 -> Int# # indexByteArray# :: ByteArray# -> Int# -> Int16 # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int16 #) # writeByteArray# :: MutableByteArray# s -> Int# -> Int16 -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Int16 -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Int16 # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Int16 #) # writeOffAddr# :: Addr# -> Int# -> Int16 -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Int16 -> State# s -> State# s # | |
Prim Int32 # | |
Defined in Data.Primitive.Types Methods alignment# :: Int32 -> Int# # indexByteArray# :: ByteArray# -> Int# -> Int32 # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int32 #) # writeByteArray# :: MutableByteArray# s -> Int# -> Int32 -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Int32 -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Int32 # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Int32 #) # writeOffAddr# :: Addr# -> Int# -> Int32 -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Int32 -> State# s -> State# s # | |
Prim Int64 # | |
Defined in Data.Primitive.Types Methods alignment# :: Int64 -> Int# # indexByteArray# :: ByteArray# -> Int# -> Int64 # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int64 #) # writeByteArray# :: MutableByteArray# s -> Int# -> Int64 -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Int64 -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Int64 # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Int64 #) # writeOffAddr# :: Addr# -> Int# -> Int64 -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Int64 -> State# s -> State# s # | |
Prim Word # | |
Defined in Data.Primitive.Types Methods alignment# :: Word -> Int# # indexByteArray# :: ByteArray# -> Int# -> Word # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word #) # writeByteArray# :: MutableByteArray# s -> Int# -> Word -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Word -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Word # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Word #) # writeOffAddr# :: Addr# -> Int# -> Word -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Word -> State# s -> State# s # | |
Prim Word8 # | |
Defined in Data.Primitive.Types Methods alignment# :: Word8 -> Int# # indexByteArray# :: ByteArray# -> Int# -> Word8 # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word8 #) # writeByteArray# :: MutableByteArray# s -> Int# -> Word8 -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Word8 -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Word8 # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Word8 #) # writeOffAddr# :: Addr# -> Int# -> Word8 -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Word8 -> State# s -> State# s # | |
Prim Word16 # | |
Defined in Data.Primitive.Types Methods alignment# :: Word16 -> Int# # indexByteArray# :: ByteArray# -> Int# -> Word16 # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word16 #) # writeByteArray# :: MutableByteArray# s -> Int# -> Word16 -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Word16 -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Word16 # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Word16 #) # writeOffAddr# :: Addr# -> Int# -> Word16 -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Word16 -> State# s -> State# s # | |
Prim Word32 # | |
Defined in Data.Primitive.Types Methods alignment# :: Word32 -> Int# # indexByteArray# :: ByteArray# -> Int# -> Word32 # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word32 #) # writeByteArray# :: MutableByteArray# s -> Int# -> Word32 -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Word32 -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Word32 # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Word32 #) # writeOffAddr# :: Addr# -> Int# -> Word32 -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Word32 -> State# s -> State# s # | |
Prim Word64 # | |
Defined in Data.Primitive.Types Methods alignment# :: Word64 -> Int# # indexByteArray# :: ByteArray# -> Int# -> Word64 # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word64 #) # writeByteArray# :: MutableByteArray# s -> Int# -> Word64 -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Word64 -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Word64 # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Word64 #) # writeOffAddr# :: Addr# -> Int# -> Word64 -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Word64 -> State# s -> State# s # | |
Prim CInt # | |
Defined in Data.Primitive.Types Methods alignment# :: CInt -> Int# # indexByteArray# :: ByteArray# -> Int# -> CInt # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CInt #) # writeByteArray# :: MutableByteArray# s -> Int# -> CInt -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CInt -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CInt # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CInt #) # writeOffAddr# :: Addr# -> Int# -> CInt -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CInt -> State# s -> State# s # | |
Prim CBool # | |
Defined in Data.Primitive.Types Methods alignment# :: CBool -> Int# # indexByteArray# :: ByteArray# -> Int# -> CBool # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CBool #) # writeByteArray# :: MutableByteArray# s -> Int# -> CBool -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CBool -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CBool # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CBool #) # writeOffAddr# :: Addr# -> Int# -> CBool -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CBool -> State# s -> State# s # | |
Prim CChar # | |
Defined in Data.Primitive.Types Methods alignment# :: CChar -> Int# # indexByteArray# :: ByteArray# -> Int# -> CChar # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CChar #) # writeByteArray# :: MutableByteArray# s -> Int# -> CChar -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CChar -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CChar # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CChar #) # writeOffAddr# :: Addr# -> Int# -> CChar -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CChar -> State# s -> State# s # | |
Prim CClock # | |
Defined in Data.Primitive.Types Methods alignment# :: CClock -> Int# # indexByteArray# :: ByteArray# -> Int# -> CClock # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CClock #) # writeByteArray# :: MutableByteArray# s -> Int# -> CClock -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CClock -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CClock # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CClock #) # writeOffAddr# :: Addr# -> Int# -> CClock -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CClock -> State# s -> State# s # | |
Prim CDouble # | |
Defined in Data.Primitive.Types Methods alignment# :: CDouble -> Int# # indexByteArray# :: ByteArray# -> Int# -> CDouble # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CDouble #) # writeByteArray# :: MutableByteArray# s -> Int# -> CDouble -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CDouble -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CDouble # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CDouble #) # writeOffAddr# :: Addr# -> Int# -> CDouble -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CDouble -> State# s -> State# s # | |
Prim CFloat # | |
Defined in Data.Primitive.Types Methods alignment# :: CFloat -> Int# # indexByteArray# :: ByteArray# -> Int# -> CFloat # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CFloat #) # writeByteArray# :: MutableByteArray# s -> Int# -> CFloat -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CFloat -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CFloat # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CFloat #) # writeOffAddr# :: Addr# -> Int# -> CFloat -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CFloat -> State# s -> State# s # | |
Prim CIntMax # | |
Defined in Data.Primitive.Types Methods alignment# :: CIntMax -> Int# # indexByteArray# :: ByteArray# -> Int# -> CIntMax # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CIntMax #) # writeByteArray# :: MutableByteArray# s -> Int# -> CIntMax -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CIntMax -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CIntMax # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CIntMax #) # writeOffAddr# :: Addr# -> Int# -> CIntMax -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CIntMax -> State# s -> State# s # | |
Prim CIntPtr # | |
Defined in Data.Primitive.Types Methods alignment# :: CIntPtr -> Int# # indexByteArray# :: ByteArray# -> Int# -> CIntPtr # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CIntPtr #) # writeByteArray# :: MutableByteArray# s -> Int# -> CIntPtr -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CIntPtr -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CIntPtr # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CIntPtr #) # writeOffAddr# :: Addr# -> Int# -> CIntPtr -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CIntPtr -> State# s -> State# s # | |
Prim CLLong # | |
Defined in Data.Primitive.Types Methods alignment# :: CLLong -> Int# # indexByteArray# :: ByteArray# -> Int# -> CLLong # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CLLong #) # writeByteArray# :: MutableByteArray# s -> Int# -> CLLong -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CLLong -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CLLong # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CLLong #) # writeOffAddr# :: Addr# -> Int# -> CLLong -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CLLong -> State# s -> State# s # | |
Prim CLong # | |
Defined in Data.Primitive.Types Methods alignment# :: CLong -> Int# # indexByteArray# :: ByteArray# -> Int# -> CLong # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CLong #) # writeByteArray# :: MutableByteArray# s -> Int# -> CLong -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CLong -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CLong # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CLong #) # writeOffAddr# :: Addr# -> Int# -> CLong -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CLong -> State# s -> State# s # | |
Prim CPtrdiff # | |
Defined in Data.Primitive.Types Methods alignment# :: CPtrdiff -> Int# # indexByteArray# :: ByteArray# -> Int# -> CPtrdiff # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CPtrdiff #) # writeByteArray# :: MutableByteArray# s -> Int# -> CPtrdiff -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CPtrdiff -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CPtrdiff # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CPtrdiff #) # writeOffAddr# :: Addr# -> Int# -> CPtrdiff -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CPtrdiff -> State# s -> State# s # | |
Prim CSChar # | |
Defined in Data.Primitive.Types Methods alignment# :: CSChar -> Int# # indexByteArray# :: ByteArray# -> Int# -> CSChar # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CSChar #) # writeByteArray# :: MutableByteArray# s -> Int# -> CSChar -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CSChar -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CSChar # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CSChar #) # writeOffAddr# :: Addr# -> Int# -> CSChar -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CSChar -> State# s -> State# s # | |
Prim CSUSeconds # | |
Defined in Data.Primitive.Types Methods sizeOf# :: CSUSeconds -> Int# # alignment# :: CSUSeconds -> Int# # indexByteArray# :: ByteArray# -> Int# -> CSUSeconds # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CSUSeconds #) # writeByteArray# :: MutableByteArray# s -> Int# -> CSUSeconds -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CSUSeconds -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CSUSeconds # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CSUSeconds #) # writeOffAddr# :: Addr# -> Int# -> CSUSeconds -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CSUSeconds -> State# s -> State# s # | |
Prim CShort # | |
Defined in Data.Primitive.Types Methods alignment# :: CShort -> Int# # indexByteArray# :: ByteArray# -> Int# -> CShort # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CShort #) # writeByteArray# :: MutableByteArray# s -> Int# -> CShort -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CShort -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CShort # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CShort #) # writeOffAddr# :: Addr# -> Int# -> CShort -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CShort -> State# s -> State# s # | |
Prim CSigAtomic # | |
Defined in Data.Primitive.Types Methods sizeOf# :: CSigAtomic -> Int# # alignment# :: CSigAtomic -> Int# # indexByteArray# :: ByteArray# -> Int# -> CSigAtomic # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CSigAtomic #) # writeByteArray# :: MutableByteArray# s -> Int# -> CSigAtomic -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CSigAtomic -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CSigAtomic # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CSigAtomic #) # writeOffAddr# :: Addr# -> Int# -> CSigAtomic -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CSigAtomic -> State# s -> State# s # | |
Prim CSize # | |
Defined in Data.Primitive.Types Methods alignment# :: CSize -> Int# # indexByteArray# :: ByteArray# -> Int# -> CSize # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CSize #) # writeByteArray# :: MutableByteArray# s -> Int# -> CSize -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CSize -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CSize # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CSize #) # writeOffAddr# :: Addr# -> Int# -> CSize -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CSize -> State# s -> State# s # | |
Prim CTime # | |
Defined in Data.Primitive.Types Methods alignment# :: CTime -> Int# # indexByteArray# :: ByteArray# -> Int# -> CTime # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CTime #) # writeByteArray# :: MutableByteArray# s -> Int# -> CTime -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CTime -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CTime # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CTime #) # writeOffAddr# :: Addr# -> Int# -> CTime -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CTime -> State# s -> State# s # | |
Prim CUChar # | |
Defined in Data.Primitive.Types Methods alignment# :: CUChar -> Int# # indexByteArray# :: ByteArray# -> Int# -> CUChar # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CUChar #) # writeByteArray# :: MutableByteArray# s -> Int# -> CUChar -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CUChar -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CUChar # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CUChar #) # writeOffAddr# :: Addr# -> Int# -> CUChar -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CUChar -> State# s -> State# s # | |
Prim CUInt # | |
Defined in Data.Primitive.Types Methods alignment# :: CUInt -> Int# # indexByteArray# :: ByteArray# -> Int# -> CUInt # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CUInt #) # writeByteArray# :: MutableByteArray# s -> Int# -> CUInt -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CUInt -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CUInt # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CUInt #) # writeOffAddr# :: Addr# -> Int# -> CUInt -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CUInt -> State# s -> State# s # | |
Prim CUIntMax # | |
Defined in Data.Primitive.Types Methods alignment# :: CUIntMax -> Int# # indexByteArray# :: ByteArray# -> Int# -> CUIntMax # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CUIntMax #) # writeByteArray# :: MutableByteArray# s -> Int# -> CUIntMax -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CUIntMax -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CUIntMax # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CUIntMax #) # writeOffAddr# :: Addr# -> Int# -> CUIntMax -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CUIntMax -> State# s -> State# s # | |
Prim CUIntPtr # | |
Defined in Data.Primitive.Types Methods alignment# :: CUIntPtr -> Int# # indexByteArray# :: ByteArray# -> Int# -> CUIntPtr # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CUIntPtr #) # writeByteArray# :: MutableByteArray# s -> Int# -> CUIntPtr -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CUIntPtr -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CUIntPtr # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CUIntPtr #) # writeOffAddr# :: Addr# -> Int# -> CUIntPtr -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CUIntPtr -> State# s -> State# s # | |
Prim CULLong # | |
Defined in Data.Primitive.Types Methods alignment# :: CULLong -> Int# # indexByteArray# :: ByteArray# -> Int# -> CULLong # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CULLong #) # writeByteArray# :: MutableByteArray# s -> Int# -> CULLong -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CULLong -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CULLong # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CULLong #) # writeOffAddr# :: Addr# -> Int# -> CULLong -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CULLong -> State# s -> State# s # | |
Prim CULong # | |
Defined in Data.Primitive.Types Methods alignment# :: CULong -> Int# # indexByteArray# :: ByteArray# -> Int# -> CULong # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CULong #) # writeByteArray# :: MutableByteArray# s -> Int# -> CULong -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CULong -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CULong # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CULong #) # writeOffAddr# :: Addr# -> Int# -> CULong -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CULong -> State# s -> State# s # | |
Prim CUSeconds # | |
Defined in Data.Primitive.Types Methods sizeOf# :: CUSeconds -> Int# # alignment# :: CUSeconds -> Int# # indexByteArray# :: ByteArray# -> Int# -> CUSeconds # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CUSeconds #) # writeByteArray# :: MutableByteArray# s -> Int# -> CUSeconds -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CUSeconds -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CUSeconds # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CUSeconds #) # writeOffAddr# :: Addr# -> Int# -> CUSeconds -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CUSeconds -> State# s -> State# s # | |
Prim CUShort # | |
Defined in Data.Primitive.Types Methods alignment# :: CUShort -> Int# # indexByteArray# :: ByteArray# -> Int# -> CUShort # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CUShort #) # writeByteArray# :: MutableByteArray# s -> Int# -> CUShort -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CUShort -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CUShort # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CUShort #) # writeOffAddr# :: Addr# -> Int# -> CUShort -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CUShort -> State# s -> State# s # | |
Prim CWchar # | |
Defined in Data.Primitive.Types Methods alignment# :: CWchar -> Int# # indexByteArray# :: ByteArray# -> Int# -> CWchar # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CWchar #) # writeByteArray# :: MutableByteArray# s -> Int# -> CWchar -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CWchar -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CWchar # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CWchar #) # writeOffAddr# :: Addr# -> Int# -> CWchar -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CWchar -> State# s -> State# s # | |
Prim CBlkCnt # | |
Defined in Data.Primitive.Types Methods alignment# :: CBlkCnt -> Int# # indexByteArray# :: ByteArray# -> Int# -> CBlkCnt # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CBlkCnt #) # writeByteArray# :: MutableByteArray# s -> Int# -> CBlkCnt -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CBlkCnt -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CBlkCnt # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CBlkCnt #) # writeOffAddr# :: Addr# -> Int# -> CBlkCnt -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CBlkCnt -> State# s -> State# s # | |
Prim CBlkSize # | |
Defined in Data.Primitive.Types Methods alignment# :: CBlkSize -> Int# # indexByteArray# :: ByteArray# -> Int# -> CBlkSize # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CBlkSize #) # writeByteArray# :: MutableByteArray# s -> Int# -> CBlkSize -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CBlkSize -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CBlkSize # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CBlkSize #) # writeOffAddr# :: Addr# -> Int# -> CBlkSize -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CBlkSize -> State# s -> State# s # | |
Prim CCc # | |
Defined in Data.Primitive.Types Methods alignment# :: CCc -> Int# # indexByteArray# :: ByteArray# -> Int# -> CCc # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CCc #) # writeByteArray# :: MutableByteArray# s -> Int# -> CCc -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CCc -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CCc # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CCc #) # writeOffAddr# :: Addr# -> Int# -> CCc -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CCc -> State# s -> State# s # | |
Prim CClockId # | |
Defined in Data.Primitive.Types Methods alignment# :: CClockId -> Int# # indexByteArray# :: ByteArray# -> Int# -> CClockId # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CClockId #) # writeByteArray# :: MutableByteArray# s -> Int# -> CClockId -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CClockId -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CClockId # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CClockId #) # writeOffAddr# :: Addr# -> Int# -> CClockId -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CClockId -> State# s -> State# s # | |
Prim CDev # | |
Defined in Data.Primitive.Types Methods alignment# :: CDev -> Int# # indexByteArray# :: ByteArray# -> Int# -> CDev # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CDev #) # writeByteArray# :: MutableByteArray# s -> Int# -> CDev -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CDev -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CDev # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CDev #) # writeOffAddr# :: Addr# -> Int# -> CDev -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CDev -> State# s -> State# s # | |
Prim CFsBlkCnt # | |
Defined in Data.Primitive.Types Methods sizeOf# :: CFsBlkCnt -> Int# # alignment# :: CFsBlkCnt -> Int# # indexByteArray# :: ByteArray# -> Int# -> CFsBlkCnt # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CFsBlkCnt #) # writeByteArray# :: MutableByteArray# s -> Int# -> CFsBlkCnt -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CFsBlkCnt -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CFsBlkCnt # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CFsBlkCnt #) # writeOffAddr# :: Addr# -> Int# -> CFsBlkCnt -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CFsBlkCnt -> State# s -> State# s # | |
Prim CFsFilCnt # | |
Defined in Data.Primitive.Types Methods sizeOf# :: CFsFilCnt -> Int# # alignment# :: CFsFilCnt -> Int# # indexByteArray# :: ByteArray# -> Int# -> CFsFilCnt # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CFsFilCnt #) # writeByteArray# :: MutableByteArray# s -> Int# -> CFsFilCnt -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CFsFilCnt -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CFsFilCnt # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CFsFilCnt #) # writeOffAddr# :: Addr# -> Int# -> CFsFilCnt -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CFsFilCnt -> State# s -> State# s # | |
Prim CGid # | |
Defined in Data.Primitive.Types Methods alignment# :: CGid -> Int# # indexByteArray# :: ByteArray# -> Int# -> CGid # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CGid #) # writeByteArray# :: MutableByteArray# s -> Int# -> CGid -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CGid -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CGid # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CGid #) # writeOffAddr# :: Addr# -> Int# -> CGid -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CGid -> State# s -> State# s # | |
Prim CId # | |
Defined in Data.Primitive.Types Methods alignment# :: CId -> Int# # indexByteArray# :: ByteArray# -> Int# -> CId # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CId #) # writeByteArray# :: MutableByteArray# s -> Int# -> CId -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CId -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CId # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CId #) # writeOffAddr# :: Addr# -> Int# -> CId -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CId -> State# s -> State# s # | |
Prim CIno # | |
Defined in Data.Primitive.Types Methods alignment# :: CIno -> Int# # indexByteArray# :: ByteArray# -> Int# -> CIno # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CIno #) # writeByteArray# :: MutableByteArray# s -> Int# -> CIno -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CIno -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CIno # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CIno #) # writeOffAddr# :: Addr# -> Int# -> CIno -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CIno -> State# s -> State# s # | |
Prim CKey # | |
Defined in Data.Primitive.Types Methods alignment# :: CKey -> Int# # indexByteArray# :: ByteArray# -> Int# -> CKey # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CKey #) # writeByteArray# :: MutableByteArray# s -> Int# -> CKey -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CKey -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CKey # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CKey #) # writeOffAddr# :: Addr# -> Int# -> CKey -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CKey -> State# s -> State# s # | |
Prim CMode # | |
Defined in Data.Primitive.Types Methods alignment# :: CMode -> Int# # indexByteArray# :: ByteArray# -> Int# -> CMode # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CMode #) # writeByteArray# :: MutableByteArray# s -> Int# -> CMode -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CMode -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CMode # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CMode #) # writeOffAddr# :: Addr# -> Int# -> CMode -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CMode -> State# s -> State# s # | |
Prim CNlink # | |
Defined in Data.Primitive.Types Methods alignment# :: CNlink -> Int# # indexByteArray# :: ByteArray# -> Int# -> CNlink # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CNlink #) # writeByteArray# :: MutableByteArray# s -> Int# -> CNlink -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CNlink -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CNlink # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CNlink #) # writeOffAddr# :: Addr# -> Int# -> CNlink -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CNlink -> State# s -> State# s # | |
Prim COff # | |
Defined in Data.Primitive.Types Methods alignment# :: COff -> Int# # indexByteArray# :: ByteArray# -> Int# -> COff # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, COff #) # writeByteArray# :: MutableByteArray# s -> Int# -> COff -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> COff -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> COff # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, COff #) # writeOffAddr# :: Addr# -> Int# -> COff -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> COff -> State# s -> State# s # | |
Prim CPid # | |
Defined in Data.Primitive.Types Methods alignment# :: CPid -> Int# # indexByteArray# :: ByteArray# -> Int# -> CPid # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CPid #) # writeByteArray# :: MutableByteArray# s -> Int# -> CPid -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CPid -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CPid # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CPid #) # writeOffAddr# :: Addr# -> Int# -> CPid -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CPid -> State# s -> State# s # | |
Prim CRLim # | |
Defined in Data.Primitive.Types Methods alignment# :: CRLim -> Int# # indexByteArray# :: ByteArray# -> Int# -> CRLim # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CRLim #) # writeByteArray# :: MutableByteArray# s -> Int# -> CRLim -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CRLim -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CRLim # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CRLim #) # writeOffAddr# :: Addr# -> Int# -> CRLim -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CRLim -> State# s -> State# s # | |
Prim CSpeed # | |
Defined in Data.Primitive.Types Methods alignment# :: CSpeed -> Int# # indexByteArray# :: ByteArray# -> Int# -> CSpeed # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CSpeed #) # writeByteArray# :: MutableByteArray# s -> Int# -> CSpeed -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CSpeed -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CSpeed # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CSpeed #) # writeOffAddr# :: Addr# -> Int# -> CSpeed -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CSpeed -> State# s -> State# s # | |
Prim CSsize # | |
Defined in Data.Primitive.Types Methods alignment# :: CSsize -> Int# # indexByteArray# :: ByteArray# -> Int# -> CSsize # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CSsize #) # writeByteArray# :: MutableByteArray# s -> Int# -> CSsize -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CSsize -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CSsize # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CSsize #) # writeOffAddr# :: Addr# -> Int# -> CSsize -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CSsize -> State# s -> State# s # | |
Prim CTcflag # | |
Defined in Data.Primitive.Types Methods alignment# :: CTcflag -> Int# # indexByteArray# :: ByteArray# -> Int# -> CTcflag # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CTcflag #) # writeByteArray# :: MutableByteArray# s -> Int# -> CTcflag -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CTcflag -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CTcflag # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CTcflag #) # writeOffAddr# :: Addr# -> Int# -> CTcflag -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CTcflag -> State# s -> State# s # | |
Prim CTimer # | |
Defined in Data.Primitive.Types Methods alignment# :: CTimer -> Int# # indexByteArray# :: ByteArray# -> Int# -> CTimer # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CTimer #) # writeByteArray# :: MutableByteArray# s -> Int# -> CTimer -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CTimer -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CTimer # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CTimer #) # writeOffAddr# :: Addr# -> Int# -> CTimer -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CTimer -> State# s -> State# s # | |
Prim CUid # | |
Defined in Data.Primitive.Types Methods alignment# :: CUid -> Int# # indexByteArray# :: ByteArray# -> Int# -> CUid # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, CUid #) # writeByteArray# :: MutableByteArray# s -> Int# -> CUid -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> CUid -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> CUid # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, CUid #) # writeOffAddr# :: Addr# -> Int# -> CUid -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> CUid -> State# s -> State# s # | |
Prim Fd # | |
Defined in Data.Primitive.Types Methods alignment# :: Fd -> Int# # indexByteArray# :: ByteArray# -> Int# -> Fd # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Fd #) # writeByteArray# :: MutableByteArray# s -> Int# -> Fd -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Fd -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Fd # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Fd #) # writeOffAddr# :: Addr# -> Int# -> Fd -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Fd -> State# s -> State# s # | |
Prim (StablePtr a) # | |
Defined in Data.Primitive.Types Methods sizeOf# :: StablePtr a -> Int# # alignment# :: StablePtr a -> Int# # indexByteArray# :: ByteArray# -> Int# -> StablePtr a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, StablePtr a #) # writeByteArray# :: MutableByteArray# s -> Int# -> StablePtr a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> StablePtr a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> StablePtr a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, StablePtr a #) # writeOffAddr# :: Addr# -> Int# -> StablePtr a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> StablePtr a -> State# s -> State# s # | |
Prim (Ptr a) # | |
Defined in Data.Primitive.Types Methods alignment# :: Ptr a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Ptr a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Ptr a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Ptr a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Ptr a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Ptr a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Ptr a #) # writeOffAddr# :: Addr# -> Int# -> Ptr a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Ptr a -> State# s -> State# s # | |
Prim (FunPtr a) # | |
Defined in Data.Primitive.Types Methods alignment# :: FunPtr a -> Int# # indexByteArray# :: ByteArray# -> Int# -> FunPtr a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, FunPtr a #) # writeByteArray# :: MutableByteArray# s -> Int# -> FunPtr a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> FunPtr a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> FunPtr a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, FunPtr a #) # writeOffAddr# :: Addr# -> Int# -> FunPtr a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> FunPtr a -> State# s -> State# s # | |
Prim a => Prim (Down a) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods alignment# :: Down a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Down a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Down a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Down a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Down a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Down a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Down a #) # writeOffAddr# :: Addr# -> Int# -> Down a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Down a -> State# s -> State# s # | |
Prim a => Prim (Identity a) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods sizeOf# :: Identity a -> Int# # alignment# :: Identity a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Identity a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Identity a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Identity a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Identity a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Identity a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Identity a #) # writeOffAddr# :: Addr# -> Int# -> Identity a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Identity a -> State# s -> State# s # | |
Prim a => Prim (Product a) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods sizeOf# :: Product a -> Int# # alignment# :: Product a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Product a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Product a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Product a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Product a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Product a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Product a #) # writeOffAddr# :: Addr# -> Int# -> Product a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Product a -> State# s -> State# s # | |
Prim a => Prim (Sum a) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods alignment# :: Sum a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Sum a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Sum a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Sum a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Sum a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Sum a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Sum a #) # writeOffAddr# :: Addr# -> Int# -> Sum a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Sum a -> State# s -> State# s # | |
Prim a => Prim (Dual a) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods alignment# :: Dual a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Dual a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Dual a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Dual a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Dual a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Dual a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Dual a #) # writeOffAddr# :: Addr# -> Int# -> Dual a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Dual a -> State# s -> State# s # | |
Prim a => Prim (First a) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods alignment# :: First a -> Int# # indexByteArray# :: ByteArray# -> Int# -> First a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, First a #) # writeByteArray# :: MutableByteArray# s -> Int# -> First a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> First a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> First a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, First a #) # writeOffAddr# :: Addr# -> Int# -> First a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> First a -> State# s -> State# s # | |
Prim a => Prim (Last a) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods alignment# :: Last a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Last a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Last a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Last a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Last a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Last a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Last a #) # writeOffAddr# :: Addr# -> Int# -> Last a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Last a -> State# s -> State# s # | |
Prim a => Prim (Max a) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods alignment# :: Max a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Max a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Max a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Max a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Max a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Max a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Max a #) # writeOffAddr# :: Addr# -> Int# -> Max a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Max a -> State# s -> State# s # | |
Prim a => Prim (Min a) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods alignment# :: Min a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Min a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Min a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Min a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Min a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Min a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Min a #) # writeOffAddr# :: Addr# -> Int# -> Min a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Min a -> State# s -> State# s # | |
Prim a => Prim (Const a b) # | Since: 0.6.5.0 |
Defined in Data.Primitive.Types Methods sizeOf# :: Const a b -> Int# # alignment# :: Const a b -> Int# # indexByteArray# :: ByteArray# -> Int# -> Const a b # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Const a b #) # writeByteArray# :: MutableByteArray# s -> Int# -> Const a b -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Const a b -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Const a b # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Const a b #) # writeOffAddr# :: Addr# -> Int# -> Const a b -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Const a b -> State# s -> State# s # |
defaultSetByteArray# :: Prim a => MutableByteArray# s -> Int# -> Int# -> a -> State# s -> State# s #
An implementation of setByteArray#
that calls writeByteArray#
to set each element. This is helpful when writing a Prim
instance
for a multi-word data type for which there is no cpu-accelerated way
to broadcast a value to contiguous memory. It is typically used
alongside defaultSetOffAddr#
. For example:
data Trip = Trip Int Int Int instance Prim Trip sizeOf# _ = 3# *# sizeOf# (undefined :: Int) alignment# _ = alignment# (undefined :: Int) indexByteArray# arr# i# = ... readByteArray# arr# i# = ... writeByteArray# arr# i# (Trip a b c) = \s0 -> case writeByteArray# arr# (3# *# i#) a s0 of s1 -> case writeByteArray# arr# ((3# *# i#) +# 1#) b s1 of s2 -> case writeByteArray# arr# ((3# *# i#) +# 2# ) c s2 of s3 -> s3 setByteArray# = defaultSetByteArray# indexOffAddr# addr# i# = ... readOffAddr# addr# i# = ... writeOffAddr# addr# i# (Trip a b c) = \s0 -> case writeOffAddr# addr# (3# *# i#) a s0 of s1 -> case writeOffAddr# addr# ((3# *# i#) +# 1#) b s1 of s2 -> case writeOffAddr# addr# ((3# *# i#) +# 2# ) c s2 of s3 -> s3 setOffAddr# = defaultSetOffAddr#
defaultSetOffAddr# :: Prim a => Addr# -> Int# -> Int# -> a -> State# s -> State# s #
An implementation of setOffAddr#
that calls writeOffAddr#
to set each element. The documentation of defaultSetByteArray#
provides an example of how to use this.
newtype PrimStorable a #
Newtype that uses a Prim
instance to give rise to a Storable
instance.
This type is intended to be used with the DerivingVia
extension available
in GHC 8.6 and up. For example, consider a user-defined Prim
instance for
a multi-word data type.
data Uuid = Uuid Word64 Word64 deriving Storable via (PrimStorable Uuid) instance Prim Uuid where ...
Writing the Prim
instance is tedious and unavoidable, but the Storable
instance comes for free once the Prim
instance is written.
Constructors
PrimStorable | |
Fields
|
Instances
Prim a => Storable (PrimStorable a) # | |
Defined in Data.Primitive.Types Methods sizeOf :: PrimStorable a -> Int alignment :: PrimStorable a -> Int peekElemOff :: Ptr (PrimStorable a) -> Int -> IO (PrimStorable a) pokeElemOff :: Ptr (PrimStorable a) -> Int -> PrimStorable a -> IO () peekByteOff :: Ptr b -> Int -> IO (PrimStorable a) pokeByteOff :: Ptr b -> Int -> PrimStorable a -> IO () peek :: Ptr (PrimStorable a) -> IO (PrimStorable a) poke :: Ptr (PrimStorable a) -> PrimStorable a -> IO () |
Constructors
Ptr Addr# |
Instances
Generic1 (URec (Ptr ()) :: k -> Type) | |
Eq (Ptr a) | |
Data a => Data (Ptr a) | |
Defined in Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ptr a -> c (Ptr a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ptr a) dataTypeOf :: Ptr a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ptr a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ptr a)) gmapT :: (forall b. Data b => b -> b) -> Ptr a -> Ptr a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ptr a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ptr a -> r gmapQ :: (forall d. Data d => d -> u) -> Ptr a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> Ptr a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) | |
Ord (Ptr a) | |
Show (Ptr a) | |
Foldable (UAddr :: Type -> Type) | |
Defined in Data.Foldable Methods fold :: Monoid m => UAddr m -> m foldMap :: Monoid m => (a -> m) -> UAddr a -> m foldMap' :: Monoid m => (a -> m) -> UAddr a -> m foldr :: (a -> b -> b) -> b -> UAddr a -> b foldr' :: (a -> b -> b) -> b -> UAddr a -> b foldl :: (b -> a -> b) -> b -> UAddr a -> b foldl' :: (b -> a -> b) -> b -> UAddr a -> b foldr1 :: (a -> a -> a) -> UAddr a -> a foldl1 :: (a -> a -> a) -> UAddr a -> a toList :: UAddr a -> [a] null :: UAddr a -> Bool length :: UAddr a -> Int elem :: Eq a => a -> UAddr a -> Bool maximum :: Ord a => UAddr a -> a minimum :: Ord a => UAddr a -> a sum :: Num a => UAddr a -> a product :: Num a => UAddr a -> a | |
Traversable (UAddr :: Type -> Type) | |
Defined in Data.Traversable | |
Storable (Ptr a) | |
Defined in Foreign.Storable Methods peekElemOff :: Ptr (Ptr a) -> Int -> IO (Ptr a) pokeElemOff :: Ptr (Ptr a) -> Int -> Ptr a -> IO () peekByteOff :: Ptr b -> Int -> IO (Ptr a) pokeByteOff :: Ptr b -> Int -> Ptr a -> IO () | |
Prim (Ptr a) # | |
Defined in Data.Primitive.Types Methods alignment# :: Ptr a -> Int# # indexByteArray# :: ByteArray# -> Int# -> Ptr a # readByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Ptr a #) # writeByteArray# :: MutableByteArray# s -> Int# -> Ptr a -> State# s -> State# s # setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Ptr a -> State# s -> State# s # indexOffAddr# :: Addr# -> Int# -> Ptr a # readOffAddr# :: Addr# -> Int# -> State# s -> (# State# s, Ptr a #) # writeOffAddr# :: Addr# -> Int# -> Ptr a -> State# s -> State# s # setOffAddr# :: Addr# -> Int# -> Int# -> Ptr a -> State# s -> State# s # | |
Functor (URec (Ptr ()) :: Type -> Type) | |
Eq (URec (Ptr ()) p) | |
Ord (URec (Ptr ()) p) | |
Defined in GHC.Generics Methods compare :: URec (Ptr ()) p -> URec (Ptr ()) p -> Ordering (<) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool (<=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool (>) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool (>=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool max :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p min :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p | |
Generic (URec (Ptr ()) p) | |
data URec (Ptr ()) (p :: k) | |
Defined in GHC.Generics | |
type Rep1 (URec (Ptr ()) :: k -> Type) | |
Defined in GHC.Generics type Rep1 (URec (Ptr ()) :: k -> Type) = D1 ('MetaData "URec" "GHC.Generics" "base" 'False) (C1 ('MetaCons "UAddr" 'PrefixI 'True) (S1 ('MetaSel ('Just "uAddr#") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (UAddr :: k -> Type))) | |
type Rep (URec (Ptr ()) p) | |
Defined in GHC.Generics type Rep (URec (Ptr ()) p) = D1 ('MetaData "URec" "GHC.Generics" "base" 'False) (C1 ('MetaCons "UAddr" 'PrefixI 'True) (S1 ('MetaSel ('Just "uAddr#") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (UAddr :: Type -> Type))) |