{-# LANGUAGE CPP #-}
{-# LANGUAGE UnboxedTuples #-}
#include "MachDeps.h"
module Raehik.Compat.Data.Primitive.Types
( Prim'(..)
, P.Prim(..)
, P.sizeOf
) where
import Data.Primitive.Types qualified as P
import Raehik.Compat.GHC.Exts.GHC910UnalignedAddrPrimops
import GHC.Exts
import GHC.Word
import GHC.Int
import Numeric.Natural
class P.Prim a => Prim' a where
type SizeOf a :: Natural
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> a
readWord8ByteArrayAs# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, a #)
writeWord8ByteArrayAs# :: MutableByteArray# s -> Int# -> a -> State# s -> State# s
indexWord8OffAddrAs# :: Addr# -> Int# -> a
readWord8OffAddrAs# :: Addr# -> Int# -> State# s -> (# State# s, a #)
writeWord8OffAddrAs# :: Addr# -> Int# -> a -> State# s -> State# s
instance Prim' Word8 where
type SizeOf Word8 = SIZEOF_WORD8
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Word8
indexWord8ByteArrayAs# = ByteArray# -> Int# -> Word8
forall a. Prim a => ByteArray# -> Int# -> a
P.indexByteArray#
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Word8 #)
readWord8ByteArrayAs# = MutableByteArray# s -> Int# -> State# s -> (# State# s, Word8 #)
forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Word8 #)
forall a s.
Prim a =>
MutableByteArray# s -> Int# -> State# s -> (# State# s, a #)
P.readByteArray#
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Word8 -> State# s -> State# s
writeWord8ByteArrayAs# = MutableByteArray# s -> Int# -> Word8 -> State# s -> State# s
forall s.
MutableByteArray# s -> Int# -> Word8 -> State# s -> State# s
forall a s.
Prim a =>
MutableByteArray# s -> Int# -> a -> State# s -> State# s
P.writeByteArray#
indexWord8OffAddrAs# :: Addr# -> Int# -> Word8
indexWord8OffAddrAs# = Addr# -> Int# -> Word8
forall a. Prim a => Addr# -> Int# -> a
P.indexOffAddr#
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Word8 #)
readWord8OffAddrAs# = Addr# -> Int# -> State# s -> (# State# s, Word8 #)
forall s. Addr# -> Int# -> State# s -> (# State# s, Word8 #)
forall a s.
Prim a =>
Addr# -> Int# -> State# s -> (# State# s, a #)
P.readOffAddr#
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Word8 -> State# s -> State# s
writeWord8OffAddrAs# = Addr# -> Int# -> Word8 -> State# s -> State# s
forall s. Addr# -> Int# -> Word8 -> State# s -> State# s
forall a s. Prim a => Addr# -> Int# -> a -> State# s -> State# s
P.writeOffAddr#
instance Prim' Word16 where
type SizeOf Word16 = SIZEOF_WORD16
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Word16
indexWord8ByteArrayAs# ByteArray#
arr# Int#
os# = Word16# -> Word16
W16# (ByteArray# -> Int# -> Word16#
indexWord8ArrayAsWord16# ByteArray#
arr# Int#
os#)
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Word16 #)
readWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# = \State# s
s0 ->
case MutableByteArray# s -> Int# -> State# s -> (# State# s, Word16# #)
forall d.
MutableByteArray# d -> Int# -> State# d -> (# State# d, Word16# #)
readWord8ArrayAsWord16# MutableByteArray# s
arr# Int#
os# State# s
s0 of
(# State# s
s1, Word16#
w# #) -> (# State# s
s1, Word16# -> Word16
W16# Word16#
w# #)
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Word16 -> State# s -> State# s
writeWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# (W16# Word16#
w#) = \State# s
s0 ->
MutableByteArray# s -> Int# -> Word16# -> State# s -> State# s
forall d.
MutableByteArray# d -> Int# -> Word16# -> State# d -> State# d
writeWord8ArrayAsWord16# MutableByteArray# s
arr# Int#
os# Word16#
w# State# s
s0
indexWord8OffAddrAs# :: Addr# -> Int# -> Word16
indexWord8OffAddrAs# Addr#
addr# Int#
os# = Word16# -> Word16
W16# (Addr# -> Int# -> Word16#
indexWord8OffAddrAsWord16# Addr#
addr# Int#
os#)
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Word16 #)
readWord8OffAddrAs# Addr#
addr# Int#
os# = \State# s
s0 ->
case Addr# -> Int# -> State# s -> (# State# s, Word16# #)
forall d. Addr# -> Int# -> State# d -> (# State# d, Word16# #)
readWord8OffAddrAsWord16# Addr#
addr# Int#
os# State# s
s0 of
(# State# s
s1, Word16#
w# #) -> (# State# s
s1, Word16# -> Word16
W16# Word16#
w# #)
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Word16 -> State# s -> State# s
writeWord8OffAddrAs# Addr#
addr# Int#
os# (W16# Word16#
w#) State# s
s# =
Addr# -> Int# -> Word16# -> State# s -> State# s
forall d. Addr# -> Int# -> Word16# -> State# d -> State# d
writeWord8OffAddrAsWord16# Addr#
addr# Int#
os# Word16#
w# State# s
s#
instance Prim' Word32 where
type SizeOf Word32 = SIZEOF_WORD32
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Word32
indexWord8ByteArrayAs# ByteArray#
arr# Int#
os# = Word32# -> Word32
W32# (ByteArray# -> Int# -> Word32#
indexWord8ArrayAsWord32# ByteArray#
arr# Int#
os#)
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Word32 #)
readWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# = \State# s
s0 ->
case MutableByteArray# s -> Int# -> State# s -> (# State# s, Word32# #)
forall d.
MutableByteArray# d -> Int# -> State# d -> (# State# d, Word32# #)
readWord8ArrayAsWord32# MutableByteArray# s
arr# Int#
os# State# s
s0 of
(# State# s
s1, Word32#
w# #) -> (# State# s
s1, Word32# -> Word32
W32# Word32#
w# #)
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Word32 -> State# s -> State# s
writeWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# (W32# Word32#
w#) = \State# s
s0 ->
MutableByteArray# s -> Int# -> Word32# -> State# s -> State# s
forall d.
MutableByteArray# d -> Int# -> Word32# -> State# d -> State# d
writeWord8ArrayAsWord32# MutableByteArray# s
arr# Int#
os# Word32#
w# State# s
s0
indexWord8OffAddrAs# :: Addr# -> Int# -> Word32
indexWord8OffAddrAs# Addr#
addr# Int#
os# = Word32# -> Word32
W32# (Addr# -> Int# -> Word32#
indexWord8OffAddrAsWord32# Addr#
addr# Int#
os#)
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Word32 #)
readWord8OffAddrAs# Addr#
addr# Int#
os# = \State# s
s0 ->
case Addr# -> Int# -> State# s -> (# State# s, Word32# #)
forall d. Addr# -> Int# -> State# d -> (# State# d, Word32# #)
readWord8OffAddrAsWord32# Addr#
addr# Int#
os# State# s
s0 of
(# State# s
s1, Word32#
w# #) -> (# State# s
s1, Word32# -> Word32
W32# Word32#
w# #)
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Word32 -> State# s -> State# s
writeWord8OffAddrAs# Addr#
addr# Int#
os# (W32# Word32#
w#) State# s
s# =
Addr# -> Int# -> Word32# -> State# s -> State# s
forall d. Addr# -> Int# -> Word32# -> State# d -> State# d
writeWord8OffAddrAsWord32# Addr#
addr# Int#
os# Word32#
w# State# s
s#
instance Prim' Word64 where
type SizeOf Word64 = SIZEOF_WORD64
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Word64
indexWord8ByteArrayAs# ByteArray#
arr# Int#
os# = Word64# -> Word64
W64# (ByteArray# -> Int# -> Word64#
indexWord8ArrayAsWord64# ByteArray#
arr# Int#
os#)
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Word64 #)
readWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# = \State# s
s0 ->
case MutableByteArray# s -> Int# -> State# s -> (# State# s, Word64# #)
forall d.
MutableByteArray# d -> Int# -> State# d -> (# State# d, Word64# #)
readWord8ArrayAsWord64# MutableByteArray# s
arr# Int#
os# State# s
s0 of
(# State# s
s1, Word64#
w# #) -> (# State# s
s1, Word64# -> Word64
W64# Word64#
w# #)
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Word64 -> State# s -> State# s
writeWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# (W64# Word64#
w#) = \State# s
s0 ->
MutableByteArray# s -> Int# -> Word64# -> State# s -> State# s
forall d.
MutableByteArray# d -> Int# -> Word64# -> State# d -> State# d
writeWord8ArrayAsWord64# MutableByteArray# s
arr# Int#
os# Word64#
w# State# s
s0
indexWord8OffAddrAs# :: Addr# -> Int# -> Word64
indexWord8OffAddrAs# Addr#
addr# Int#
os# = Word64# -> Word64
W64# (Addr# -> Int# -> Word64#
indexWord8OffAddrAsWord64# Addr#
addr# Int#
os#)
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Word64 #)
readWord8OffAddrAs# Addr#
addr# Int#
os# = \State# s
s0 ->
case Addr# -> Int# -> State# s -> (# State# s, Word64# #)
forall d. Addr# -> Int# -> State# d -> (# State# d, Word64# #)
readWord8OffAddrAsWord64# Addr#
addr# Int#
os# State# s
s0 of
(# State# s
s1, Word64#
w# #) -> (# State# s
s1, Word64# -> Word64
W64# Word64#
w# #)
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Word64 -> State# s -> State# s
writeWord8OffAddrAs# Addr#
addr# Int#
os# (W64# Word64#
w#) State# s
s# =
Addr# -> Int# -> Word64# -> State# s -> State# s
forall d. Addr# -> Int# -> Word64# -> State# d -> State# d
writeWord8OffAddrAsWord64# Addr#
addr# Int#
os# Word64#
w# State# s
s#
instance Prim' Int8 where
type SizeOf Int8 = SIZEOF_INT8
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Int8
indexWord8ByteArrayAs# = ByteArray# -> Int# -> Int8
forall a. Prim a => ByteArray# -> Int# -> a
P.indexByteArray#
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Int8 #)
readWord8ByteArrayAs# = MutableByteArray# s -> Int# -> State# s -> (# State# s, Int8 #)
forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Int8 #)
forall a s.
Prim a =>
MutableByteArray# s -> Int# -> State# s -> (# State# s, a #)
P.readByteArray#
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Int8 -> State# s -> State# s
writeWord8ByteArrayAs# = MutableByteArray# s -> Int# -> Int8 -> State# s -> State# s
forall s.
MutableByteArray# s -> Int# -> Int8 -> State# s -> State# s
forall a s.
Prim a =>
MutableByteArray# s -> Int# -> a -> State# s -> State# s
P.writeByteArray#
indexWord8OffAddrAs# :: Addr# -> Int# -> Int8
indexWord8OffAddrAs# = Addr# -> Int# -> Int8
forall a. Prim a => Addr# -> Int# -> a
P.indexOffAddr#
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Int8 #)
readWord8OffAddrAs# = Addr# -> Int# -> State# s -> (# State# s, Int8 #)
forall s. Addr# -> Int# -> State# s -> (# State# s, Int8 #)
forall a s.
Prim a =>
Addr# -> Int# -> State# s -> (# State# s, a #)
P.readOffAddr#
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Int8 -> State# s -> State# s
writeWord8OffAddrAs# = Addr# -> Int# -> Int8 -> State# s -> State# s
forall s. Addr# -> Int# -> Int8 -> State# s -> State# s
forall a s. Prim a => Addr# -> Int# -> a -> State# s -> State# s
P.writeOffAddr#
instance Prim' Int16 where
type SizeOf Int16 = SIZEOF_INT16
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Int16
indexWord8ByteArrayAs# ByteArray#
arr# Int#
os# = Int16# -> Int16
I16# (ByteArray# -> Int# -> Int16#
indexWord8ArrayAsInt16# ByteArray#
arr# Int#
os#)
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Int16 #)
readWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# = \State# s
s0 ->
case MutableByteArray# s -> Int# -> State# s -> (# State# s, Int16# #)
forall d.
MutableByteArray# d -> Int# -> State# d -> (# State# d, Int16# #)
readWord8ArrayAsInt16# MutableByteArray# s
arr# Int#
os# State# s
s0 of
(# State# s
s1, Int16#
w# #) -> (# State# s
s1, Int16# -> Int16
I16# Int16#
w# #)
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Int16 -> State# s -> State# s
writeWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# (I16# Int16#
w#) = \State# s
s0 ->
MutableByteArray# s -> Int# -> Int16# -> State# s -> State# s
forall d.
MutableByteArray# d -> Int# -> Int16# -> State# d -> State# d
writeWord8ArrayAsInt16# MutableByteArray# s
arr# Int#
os# Int16#
w# State# s
s0
indexWord8OffAddrAs# :: Addr# -> Int# -> Int16
indexWord8OffAddrAs# Addr#
addr# Int#
os# = Int16# -> Int16
I16# (Addr# -> Int# -> Int16#
indexWord8OffAddrAsInt16# Addr#
addr# Int#
os#)
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Int16 #)
readWord8OffAddrAs# Addr#
addr# Int#
os# = \State# s
s0 ->
case Addr# -> Int# -> State# s -> (# State# s, Int16# #)
forall d. Addr# -> Int# -> State# d -> (# State# d, Int16# #)
readWord8OffAddrAsInt16# Addr#
addr# Int#
os# State# s
s0 of
(# State# s
s1, Int16#
w# #) -> (# State# s
s1, Int16# -> Int16
I16# Int16#
w# #)
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Int16 -> State# s -> State# s
writeWord8OffAddrAs# Addr#
addr# Int#
os# (I16# Int16#
w#) State# s
s# =
Addr# -> Int# -> Int16# -> State# s -> State# s
forall d. Addr# -> Int# -> Int16# -> State# d -> State# d
writeWord8OffAddrAsInt16# Addr#
addr# Int#
os# Int16#
w# State# s
s#
instance Prim' Int32 where
type SizeOf Int32 = SIZEOF_INT32
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Int32
indexWord8ByteArrayAs# ByteArray#
arr# Int#
os# = Int32# -> Int32
I32# (ByteArray# -> Int# -> Int32#
indexWord8ArrayAsInt32# ByteArray#
arr# Int#
os#)
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Int32 #)
readWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# = \State# s
s0 ->
case MutableByteArray# s -> Int# -> State# s -> (# State# s, Int32# #)
forall d.
MutableByteArray# d -> Int# -> State# d -> (# State# d, Int32# #)
readWord8ArrayAsInt32# MutableByteArray# s
arr# Int#
os# State# s
s0 of
(# State# s
s1, Int32#
w# #) -> (# State# s
s1, Int32# -> Int32
I32# Int32#
w# #)
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Int32 -> State# s -> State# s
writeWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# (I32# Int32#
w#) = \State# s
s0 ->
MutableByteArray# s -> Int# -> Int32# -> State# s -> State# s
forall d.
MutableByteArray# d -> Int# -> Int32# -> State# d -> State# d
writeWord8ArrayAsInt32# MutableByteArray# s
arr# Int#
os# Int32#
w# State# s
s0
indexWord8OffAddrAs# :: Addr# -> Int# -> Int32
indexWord8OffAddrAs# Addr#
addr# Int#
os# = Int32# -> Int32
I32# (Addr# -> Int# -> Int32#
indexWord8OffAddrAsInt32# Addr#
addr# Int#
os#)
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Int32 #)
readWord8OffAddrAs# Addr#
addr# Int#
os# = \State# s
s0 ->
case Addr# -> Int# -> State# s -> (# State# s, Int32# #)
forall d. Addr# -> Int# -> State# d -> (# State# d, Int32# #)
readWord8OffAddrAsInt32# Addr#
addr# Int#
os# State# s
s0 of
(# State# s
s1, Int32#
w# #) -> (# State# s
s1, Int32# -> Int32
I32# Int32#
w# #)
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Int32 -> State# s -> State# s
writeWord8OffAddrAs# Addr#
addr# Int#
os# (I32# Int32#
w#) State# s
s# =
Addr# -> Int# -> Int32# -> State# s -> State# s
forall d. Addr# -> Int# -> Int32# -> State# d -> State# d
writeWord8OffAddrAsInt32# Addr#
addr# Int#
os# Int32#
w# State# s
s#
instance Prim' Int64 where
type SizeOf Int64 = SIZEOF_INT64
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Int64
indexWord8ByteArrayAs# ByteArray#
arr# Int#
os# = Int64# -> Int64
I64# (ByteArray# -> Int# -> Int64#
indexWord8ArrayAsInt64# ByteArray#
arr# Int#
os#)
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Int64 #)
readWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# = \State# s
s0 ->
case MutableByteArray# s -> Int# -> State# s -> (# State# s, Int64# #)
forall d.
MutableByteArray# d -> Int# -> State# d -> (# State# d, Int64# #)
readWord8ArrayAsInt64# MutableByteArray# s
arr# Int#
os# State# s
s0 of
(# State# s
s1, Int64#
w# #) -> (# State# s
s1, Int64# -> Int64
I64# Int64#
w# #)
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Int64 -> State# s -> State# s
writeWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# (I64# Int64#
w#) = \State# s
s0 ->
MutableByteArray# s -> Int# -> Int64# -> State# s -> State# s
forall d.
MutableByteArray# d -> Int# -> Int64# -> State# d -> State# d
writeWord8ArrayAsInt64# MutableByteArray# s
arr# Int#
os# Int64#
w# State# s
s0
indexWord8OffAddrAs# :: Addr# -> Int# -> Int64
indexWord8OffAddrAs# Addr#
addr# Int#
os# = Int64# -> Int64
I64# (Addr# -> Int# -> Int64#
indexWord8OffAddrAsInt64# Addr#
addr# Int#
os#)
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Int64 #)
readWord8OffAddrAs# Addr#
addr# Int#
os# = \State# s
s0 ->
case Addr# -> Int# -> State# s -> (# State# s, Int64# #)
forall d. Addr# -> Int# -> State# d -> (# State# d, Int64# #)
readWord8OffAddrAsInt64# Addr#
addr# Int#
os# State# s
s0 of
(# State# s
s1, Int64#
w# #) -> (# State# s
s1, Int64# -> Int64
I64# Int64#
w# #)
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Int64 -> State# s -> State# s
writeWord8OffAddrAs# Addr#
addr# Int#
os# (I64# Int64#
w#) State# s
s# =
Addr# -> Int# -> Int64# -> State# s -> State# s
forall d. Addr# -> Int# -> Int64# -> State# d -> State# d
writeWord8OffAddrAsInt64# Addr#
addr# Int#
os# Int64#
w# State# s
s#
instance Prim' Word where
type SizeOf Word = SIZEOF_HSWORD
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Word
indexWord8ByteArrayAs# ByteArray#
arr# Int#
os# = Word# -> Word
W# (ByteArray# -> Int# -> Word#
indexWord8ArrayAsWord# ByteArray#
arr# Int#
os#)
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Word #)
readWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# = \State# s
s0 ->
case MutableByteArray# s -> Int# -> State# s -> (# State# s, Word# #)
forall d.
MutableByteArray# d -> Int# -> State# d -> (# State# d, Word# #)
readWord8ArrayAsWord# MutableByteArray# s
arr# Int#
os# State# s
s0 of
(# State# s
s1, Word#
w# #) -> (# State# s
s1, Word# -> Word
W# Word#
w# #)
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Word -> State# s -> State# s
writeWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# (W# Word#
w#) = \State# s
s0 ->
MutableByteArray# s -> Int# -> Word# -> State# s -> State# s
forall d.
MutableByteArray# d -> Int# -> Word# -> State# d -> State# d
writeWord8ArrayAsWord# MutableByteArray# s
arr# Int#
os# Word#
w# State# s
s0
indexWord8OffAddrAs# :: Addr# -> Int# -> Word
indexWord8OffAddrAs# Addr#
addr# Int#
os# = Word# -> Word
W# (Addr# -> Int# -> Word#
indexWord8OffAddrAsWord# Addr#
addr# Int#
os#)
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Word #)
readWord8OffAddrAs# Addr#
addr# Int#
os# = \State# s
s0 ->
case Addr# -> Int# -> State# s -> (# State# s, Word# #)
forall d. Addr# -> Int# -> State# d -> (# State# d, Word# #)
readWord8OffAddrAsWord# Addr#
addr# Int#
os# State# s
s0 of
(# State# s
s1, Word#
w# #) -> (# State# s
s1, Word# -> Word
W# Word#
w# #)
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Word -> State# s -> State# s
writeWord8OffAddrAs# Addr#
addr# Int#
os# (W# Word#
w#) State# s
s# =
Addr# -> Int# -> Word# -> State# s -> State# s
forall d. Addr# -> Int# -> Word# -> State# d -> State# d
writeWord8OffAddrAsWord# Addr#
addr# Int#
os# Word#
w# State# s
s#
instance Prim' Int where
type SizeOf Int = SIZEOF_HSINT
indexWord8ByteArrayAs# :: ByteArray# -> Int# -> Int
indexWord8ByteArrayAs# ByteArray#
arr# Int#
os# = Int# -> Int
I# (ByteArray# -> Int# -> Int#
indexWord8ArrayAsInt# ByteArray#
arr# Int#
os#)
readWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> State# s -> (# State# s, Int #)
readWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# = \State# s
s0 ->
case MutableByteArray# s -> Int# -> State# s -> (# State# s, Int# #)
forall d.
MutableByteArray# d -> Int# -> State# d -> (# State# d, Int# #)
readWord8ArrayAsInt# MutableByteArray# s
arr# Int#
os# State# s
s0 of
(# State# s
s1, Int#
w# #) -> (# State# s
s1, Int# -> Int
I# Int#
w# #)
writeWord8ByteArrayAs# :: forall s.
MutableByteArray# s -> Int# -> Int -> State# s -> State# s
writeWord8ByteArrayAs# MutableByteArray# s
arr# Int#
os# (I# Int#
w#) = \State# s
s0 ->
MutableByteArray# s -> Int# -> Int# -> State# s -> State# s
forall d.
MutableByteArray# d -> Int# -> Int# -> State# d -> State# d
writeWord8ArrayAsInt# MutableByteArray# s
arr# Int#
os# Int#
w# State# s
s0
indexWord8OffAddrAs# :: Addr# -> Int# -> Int
indexWord8OffAddrAs# Addr#
addr# Int#
os# = Int# -> Int
I# (Addr# -> Int# -> Int#
indexWord8OffAddrAsInt# Addr#
addr# Int#
os#)
readWord8OffAddrAs# :: forall s. Addr# -> Int# -> State# s -> (# State# s, Int #)
readWord8OffAddrAs# Addr#
addr# Int#
os# = \State# s
s0 ->
case Addr# -> Int# -> State# s -> (# State# s, Int# #)
forall d. Addr# -> Int# -> State# d -> (# State# d, Int# #)
readWord8OffAddrAsInt# Addr#
addr# Int#
os# State# s
s0 of
(# State# s
s1, Int#
w# #) -> (# State# s
s1, Int# -> Int
I# Int#
w# #)
writeWord8OffAddrAs# :: forall s. Addr# -> Int# -> Int -> State# s -> State# s
writeWord8OffAddrAs# Addr#
addr# Int#
os# (I# Int#
w#) State# s
s# =
Addr# -> Int# -> Int# -> State# s -> State# s
forall d. Addr# -> Int# -> Int# -> State# d -> State# d
writeWord8OffAddrAsInt# Addr#
addr# Int#
os# Int#
w# State# s
s#