ghc-prim 0.5.3 → 0.6.1
raw patch · 12 files changed
+9072/−7055 lines, 12 filessetup-changedPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- GHC.Prim: atomicModifyMutVar# :: MutVar# s a -> (a -> b) -> State# s -> (# State# s, c #)
- GHC.Prim: getThreadAllocationCounter# :: State# RealWorld -> (# State# RealWorld, Int# #)
- GHC.PrimopWrappers: atomicModifyMutVar# :: MutVar# s a -> (a -> b) -> State# s -> (# State# s, c #)
- GHC.PrimopWrappers: getThreadAllocationCounter# :: State# RealWorld -> (# State# RealWorld, Int# #)
+ GHC.Classes: (&&) :: Bool -> Bool -> Bool
+ GHC.Classes: (/=) :: Eq a => a -> a -> Bool
+ GHC.Classes: (<) :: Ord a => a -> a -> Bool
+ GHC.Classes: (<=) :: Ord a => a -> a -> Bool
+ GHC.Classes: (==) :: Eq a => a -> a -> Bool
+ GHC.Classes: (>) :: Ord a => a -> a -> Bool
+ GHC.Classes: (>=) :: Ord a => a -> a -> Bool
+ GHC.Classes: (||) :: Bool -> Bool -> Bool
+ GHC.Classes: class Eq a
+ GHC.Classes: class IP (x :: Symbol) a | x -> a
+ GHC.Classes: class (Eq a) => Ord a
+ GHC.Classes: compare :: Ord a => a -> a -> Ordering
+ GHC.Classes: compareInt :: Int -> Int -> Ordering
+ GHC.Classes: compareInt# :: Int# -> Int# -> Ordering
+ GHC.Classes: compareWord :: Word -> Word -> Ordering
+ GHC.Classes: compareWord# :: Word# -> Word# -> Ordering
+ GHC.Classes: divInt# :: Int# -> Int# -> Int#
+ GHC.Classes: eqChar :: Char -> Char -> Bool
+ GHC.Classes: eqDouble :: Double -> Double -> Bool
+ GHC.Classes: eqFloat :: Float -> Float -> Bool
+ GHC.Classes: eqInt :: Int -> Int -> Bool
+ GHC.Classes: eqWord :: Word -> Word -> Bool
+ GHC.Classes: geInt :: Int -> Int -> Bool
+ GHC.Classes: geWord :: Word -> Word -> Bool
+ GHC.Classes: gtInt :: Int -> Int -> Bool
+ GHC.Classes: gtWord :: Word -> Word -> Bool
+ GHC.Classes: infix 4 >
+ GHC.Classes: infixr 2 ||
+ GHC.Classes: infixr 3 &&
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (a, b)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c) => GHC.Classes.Eq (a, b, c)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d) => GHC.Classes.Eq (a, b, c, d)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e) => GHC.Classes.Eq (a, b, c, d, e)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f) => GHC.Classes.Eq (a, b, c, d, e, f)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g) => GHC.Classes.Eq (a, b, c, d, e, f, g)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h) => GHC.Classes.Eq (a, b, c, d, e, f, g, h)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h, GHC.Classes.Eq i) => GHC.Classes.Eq (a, b, c, d, e, f, g, h, i)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h, GHC.Classes.Eq i, GHC.Classes.Eq j) => GHC.Classes.Eq (a, b, c, d, e, f, g, h, i, j)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h, GHC.Classes.Eq i, GHC.Classes.Eq j, GHC.Classes.Eq k) => GHC.Classes.Eq (a, b, c, d, e, f, g, h, i, j, k)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h, GHC.Classes.Eq i, GHC.Classes.Eq j, GHC.Classes.Eq k, GHC.Classes.Eq l) => GHC.Classes.Eq (a, b, c, d, e, f, g, h, i, j, k, l)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h, GHC.Classes.Eq i, GHC.Classes.Eq j, GHC.Classes.Eq k, GHC.Classes.Eq l, GHC.Classes.Eq m) => GHC.Classes.Eq (a, b, c, d, e, f, g, h, i, j, k, l, m)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h, GHC.Classes.Eq i, GHC.Classes.Eq j, GHC.Classes.Eq k, GHC.Classes.Eq l, GHC.Classes.Eq m, GHC.Classes.Eq n) => GHC.Classes.Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
+ GHC.Classes: instance (GHC.Classes.Eq a, GHC.Classes.Eq b, GHC.Classes.Eq c, GHC.Classes.Eq d, GHC.Classes.Eq e, GHC.Classes.Eq f, GHC.Classes.Eq g, GHC.Classes.Eq h, GHC.Classes.Eq i, GHC.Classes.Eq j, GHC.Classes.Eq k, GHC.Classes.Eq l, GHC.Classes.Eq m, GHC.Classes.Eq n, GHC.Classes.Eq o) => GHC.Classes.Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (a, b)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c) => GHC.Classes.Ord (a, b, c)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d) => GHC.Classes.Ord (a, b, c, d)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e) => GHC.Classes.Ord (a, b, c, d, e)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f) => GHC.Classes.Ord (a, b, c, d, e, f)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g) => GHC.Classes.Ord (a, b, c, d, e, f, g)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h) => GHC.Classes.Ord (a, b, c, d, e, f, g, h)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h, GHC.Classes.Ord i) => GHC.Classes.Ord (a, b, c, d, e, f, g, h, i)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h, GHC.Classes.Ord i, GHC.Classes.Ord j) => GHC.Classes.Ord (a, b, c, d, e, f, g, h, i, j)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h, GHC.Classes.Ord i, GHC.Classes.Ord j, GHC.Classes.Ord k) => GHC.Classes.Ord (a, b, c, d, e, f, g, h, i, j, k)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h, GHC.Classes.Ord i, GHC.Classes.Ord j, GHC.Classes.Ord k, GHC.Classes.Ord l) => GHC.Classes.Ord (a, b, c, d, e, f, g, h, i, j, k, l)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h, GHC.Classes.Ord i, GHC.Classes.Ord j, GHC.Classes.Ord k, GHC.Classes.Ord l, GHC.Classes.Ord m) => GHC.Classes.Ord (a, b, c, d, e, f, g, h, i, j, k, l, m)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h, GHC.Classes.Ord i, GHC.Classes.Ord j, GHC.Classes.Ord k, GHC.Classes.Ord l, GHC.Classes.Ord m, GHC.Classes.Ord n) => GHC.Classes.Ord (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
+ GHC.Classes: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, GHC.Classes.Ord d, GHC.Classes.Ord e, GHC.Classes.Ord f, GHC.Classes.Ord g, GHC.Classes.Ord h, GHC.Classes.Ord i, GHC.Classes.Ord j, GHC.Classes.Ord k, GHC.Classes.Ord l, GHC.Classes.Ord m, GHC.Classes.Ord n, GHC.Classes.Ord o) => GHC.Classes.Ord (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
+ GHC.Classes: instance GHC.Classes.Eq ()
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.Bool
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.Char
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.Double
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.Float
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.Int
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.Module
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.Ordering
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.TrName
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.TyCon
+ GHC.Classes: instance GHC.Classes.Eq GHC.Types.Word
+ GHC.Classes: instance GHC.Classes.Eq a => GHC.Classes.Eq [a]
+ GHC.Classes: instance GHC.Classes.Ord ()
+ GHC.Classes: instance GHC.Classes.Ord GHC.Types.Bool
+ GHC.Classes: instance GHC.Classes.Ord GHC.Types.Char
+ GHC.Classes: instance GHC.Classes.Ord GHC.Types.Double
+ GHC.Classes: instance GHC.Classes.Ord GHC.Types.Float
+ GHC.Classes: instance GHC.Classes.Ord GHC.Types.Int
+ GHC.Classes: instance GHC.Classes.Ord GHC.Types.Ordering
+ GHC.Classes: instance GHC.Classes.Ord GHC.Types.TyCon
+ GHC.Classes: instance GHC.Classes.Ord GHC.Types.Word
+ GHC.Classes: instance GHC.Classes.Ord a => GHC.Classes.Ord [a]
+ GHC.Classes: ip :: IP x a => a
+ GHC.Classes: leInt :: Int -> Int -> Bool
+ GHC.Classes: leWord :: Word -> Word -> Bool
+ GHC.Classes: ltInt :: Int -> Int -> Bool
+ GHC.Classes: ltWord :: Word -> Word -> Bool
+ GHC.Classes: max :: Ord a => a -> a -> a
+ GHC.Classes: min :: Ord a => a -> a -> a
+ GHC.Classes: modInt# :: Int# -> Int# -> Int#
+ GHC.Classes: neChar :: Char -> Char -> Bool
+ GHC.Classes: neInt :: Int -> Int -> Bool
+ GHC.Classes: neWord :: Word -> Word -> Bool
+ GHC.Classes: not :: Bool -> Bool
+ GHC.Prim: acoshDouble# :: Double# -> Double#
+ GHC.Prim: acoshFloat# :: Float# -> Float#
+ GHC.Prim: asinhDouble# :: Double# -> Double#
+ GHC.Prim: asinhFloat# :: Float# -> Float#
+ GHC.Prim: atanhDouble# :: Double# -> Double#
+ GHC.Prim: atanhFloat# :: Float# -> Float#
+ GHC.Prim: atomicModifyMutVar2# :: MutVar# s a -> (a -> c) -> State# s -> (# State# s, a, c #)
+ GHC.Prim: atomicModifyMutVar_# :: MutVar# s a -> (a -> a) -> State# s -> (# State# s, a, a #)
+ GHC.Prim: bitReverse# :: Word# -> Word#
+ GHC.Prim: bitReverse16# :: Word# -> Word#
+ GHC.Prim: bitReverse32# :: Word# -> Word#
+ GHC.Prim: bitReverse64# :: Word# -> Word#
+ GHC.Prim: bitReverse8# :: Word# -> Word#
+ GHC.Prim: closureSize# :: a -> Int#
+ GHC.Prim: data Int16#
+ GHC.Prim: data Int8#
+ GHC.Prim: data Word16#
+ GHC.Prim: data Word8#
+ GHC.Prim: eqInt16# :: Int16# -> Int16# -> Int#
+ GHC.Prim: eqInt8# :: Int8# -> Int8# -> Int#
+ GHC.Prim: eqWord16# :: Word16# -> Word16# -> Int#
+ GHC.Prim: eqWord8# :: Word8# -> Word8# -> Int#
+ GHC.Prim: expm1Double# :: Double# -> Double#
+ GHC.Prim: expm1Float# :: Float# -> Float#
+ GHC.Prim: extendInt16# :: Int16# -> Int#
+ GHC.Prim: extendInt8# :: Int8# -> Int#
+ GHC.Prim: extendWord16# :: Word16# -> Word#
+ GHC.Prim: extendWord8# :: Word8# -> Word#
+ GHC.Prim: geInt16# :: Int16# -> Int16# -> Int#
+ GHC.Prim: geInt8# :: Int8# -> Int8# -> Int#
+ GHC.Prim: geWord16# :: Word16# -> Word16# -> Int#
+ GHC.Prim: geWord8# :: Word8# -> Word8# -> Int#
+ GHC.Prim: getSizeofSmallMutableArray# :: SmallMutableArray# s a -> State# s -> (# State# s, Int# #)
+ GHC.Prim: gtInt16# :: Int16# -> Int16# -> Int#
+ GHC.Prim: gtInt8# :: Int8# -> Int8# -> Int#
+ GHC.Prim: gtWord16# :: Word16# -> Word16# -> Int#
+ GHC.Prim: gtWord8# :: Word8# -> Word8# -> Int#
+ GHC.Prim: infixr 0 `seq`
+ GHC.Prim: leInt16# :: Int16# -> Int16# -> Int#
+ GHC.Prim: leInt8# :: Int8# -> Int8# -> Int#
+ GHC.Prim: leWord16# :: Word16# -> Word16# -> Int#
+ GHC.Prim: leWord8# :: Word8# -> Word8# -> Int#
+ GHC.Prim: log1pDouble# :: Double# -> Double#
+ GHC.Prim: log1pFloat# :: Float# -> Float#
+ GHC.Prim: ltInt16# :: Int16# -> Int16# -> Int#
+ GHC.Prim: ltInt8# :: Int8# -> Int8# -> Int#
+ GHC.Prim: ltWord16# :: Word16# -> Word16# -> Int#
+ GHC.Prim: ltWord8# :: Word8# -> Word8# -> Int#
+ GHC.Prim: narrowInt16# :: Int# -> Int16#
+ GHC.Prim: narrowInt8# :: Int# -> Int8#
+ GHC.Prim: narrowWord16# :: Word# -> Word16#
+ GHC.Prim: narrowWord8# :: Word# -> Word8#
+ GHC.Prim: neInt16# :: Int16# -> Int16# -> Int#
+ GHC.Prim: neInt8# :: Int8# -> Int8# -> Int#
+ GHC.Prim: neWord16# :: Word16# -> Word16# -> Int#
+ GHC.Prim: neWord8# :: Word8# -> Word8# -> Int#
+ GHC.Prim: negateInt16# :: Int16# -> Int16#
+ GHC.Prim: negateInt8# :: Int8# -> Int8#
+ GHC.Prim: notWord16# :: Word16# -> Word16#
+ GHC.Prim: notWord8# :: Word8# -> Word8#
+ GHC.Prim: plusInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Prim: plusInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Prim: plusWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Prim: plusWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Prim: quotInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Prim: quotInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Prim: quotRemInt16# :: Int16# -> Int16# -> (# Int16#, Int16# #)
+ GHC.Prim: quotRemInt8# :: Int8# -> Int8# -> (# Int8#, Int8# #)
+ GHC.Prim: quotRemWord16# :: Word16# -> Word16# -> (# Word16#, Word16# #)
+ GHC.Prim: quotRemWord8# :: Word8# -> Word8# -> (# Word8#, Word8# #)
+ GHC.Prim: quotWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Prim: quotWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Prim: remInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Prim: remInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Prim: remWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Prim: remWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Prim: shrinkSmallMutableArray# :: SmallMutableArray# s a -> Int# -> State# s -> State# s
+ GHC.Prim: subInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Prim: subInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Prim: subWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Prim: subWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Prim: timesInt16# :: Int16# -> Int16# -> Int16#
+ GHC.Prim: timesInt8# :: Int8# -> Int8# -> Int8#
+ GHC.Prim: timesWord16# :: Word16# -> Word16# -> Word16#
+ GHC.Prim: timesWord8# :: Word8# -> Word8# -> Word8#
+ GHC.Prim: traceBinaryEvent# :: Addr# -> Int# -> State# s -> State# s
+ GHC.Prim.Ext: getThreadAllocationCounter# :: State# RealWorld -> (# State# RealWorld, INT64 #)
+ GHC.Prim.Ext: type INT64 = Int#
+ GHC.Prim.Ext: type WORD64 = Word#
+ GHC.PrimopWrappers: acoshDouble# :: Double# -> Double#
+ GHC.PrimopWrappers: acoshFloat# :: Float# -> Float#
+ GHC.PrimopWrappers: asinhDouble# :: Double# -> Double#
+ GHC.PrimopWrappers: asinhFloat# :: Float# -> Float#
+ GHC.PrimopWrappers: atanhDouble# :: Double# -> Double#
+ GHC.PrimopWrappers: atanhFloat# :: Float# -> Float#
+ GHC.PrimopWrappers: atomicModifyMutVar2# :: MutVar# s a -> (a -> c) -> State# s -> (# State# s, a, c #)
+ GHC.PrimopWrappers: atomicModifyMutVar_# :: MutVar# s a -> (a -> a) -> State# s -> (# State# s, a, a #)
+ GHC.PrimopWrappers: bitReverse# :: Word# -> Word#
+ GHC.PrimopWrappers: bitReverse16# :: Word# -> Word#
+ GHC.PrimopWrappers: bitReverse32# :: Word# -> Word#
+ GHC.PrimopWrappers: bitReverse64# :: Word# -> Word#
+ GHC.PrimopWrappers: bitReverse8# :: Word# -> Word#
+ GHC.PrimopWrappers: closureSize# :: a -> Int#
+ GHC.PrimopWrappers: eqInt16# :: Int16# -> Int16# -> Int#
+ GHC.PrimopWrappers: eqInt8# :: Int8# -> Int8# -> Int#
+ GHC.PrimopWrappers: eqWord16# :: Word16# -> Word16# -> Int#
+ GHC.PrimopWrappers: eqWord8# :: Word8# -> Word8# -> Int#
+ GHC.PrimopWrappers: expm1Double# :: Double# -> Double#
+ GHC.PrimopWrappers: expm1Float# :: Float# -> Float#
+ GHC.PrimopWrappers: extendInt16# :: Int16# -> Int#
+ GHC.PrimopWrappers: extendInt8# :: Int8# -> Int#
+ GHC.PrimopWrappers: extendWord16# :: Word16# -> Word#
+ GHC.PrimopWrappers: extendWord8# :: Word8# -> Word#
+ GHC.PrimopWrappers: geInt16# :: Int16# -> Int16# -> Int#
+ GHC.PrimopWrappers: geInt8# :: Int8# -> Int8# -> Int#
+ GHC.PrimopWrappers: geWord16# :: Word16# -> Word16# -> Int#
+ GHC.PrimopWrappers: geWord8# :: Word8# -> Word8# -> Int#
+ GHC.PrimopWrappers: getSizeofSmallMutableArray# :: SmallMutableArray# s a -> State# s -> (# State# s, Int# #)
+ GHC.PrimopWrappers: gtInt16# :: Int16# -> Int16# -> Int#
+ GHC.PrimopWrappers: gtInt8# :: Int8# -> Int8# -> Int#
+ GHC.PrimopWrappers: gtWord16# :: Word16# -> Word16# -> Int#
+ GHC.PrimopWrappers: gtWord8# :: Word8# -> Word8# -> Int#
+ GHC.PrimopWrappers: leInt16# :: Int16# -> Int16# -> Int#
+ GHC.PrimopWrappers: leInt8# :: Int8# -> Int8# -> Int#
+ GHC.PrimopWrappers: leWord16# :: Word16# -> Word16# -> Int#
+ GHC.PrimopWrappers: leWord8# :: Word8# -> Word8# -> Int#
+ GHC.PrimopWrappers: log1pDouble# :: Double# -> Double#
+ GHC.PrimopWrappers: log1pFloat# :: Float# -> Float#
+ GHC.PrimopWrappers: ltInt16# :: Int16# -> Int16# -> Int#
+ GHC.PrimopWrappers: ltInt8# :: Int8# -> Int8# -> Int#
+ GHC.PrimopWrappers: ltWord16# :: Word16# -> Word16# -> Int#
+ GHC.PrimopWrappers: ltWord8# :: Word8# -> Word8# -> Int#
+ GHC.PrimopWrappers: narrowInt16# :: Int# -> Int16#
+ GHC.PrimopWrappers: narrowInt8# :: Int# -> Int8#
+ GHC.PrimopWrappers: narrowWord16# :: Word# -> Word16#
+ GHC.PrimopWrappers: narrowWord8# :: Word# -> Word8#
+ GHC.PrimopWrappers: neInt16# :: Int16# -> Int16# -> Int#
+ GHC.PrimopWrappers: neInt8# :: Int8# -> Int8# -> Int#
+ GHC.PrimopWrappers: neWord16# :: Word16# -> Word16# -> Int#
+ GHC.PrimopWrappers: neWord8# :: Word8# -> Word8# -> Int#
+ GHC.PrimopWrappers: negateInt16# :: Int16# -> Int16#
+ GHC.PrimopWrappers: negateInt8# :: Int8# -> Int8#
+ GHC.PrimopWrappers: notWord16# :: Word16# -> Word16#
+ GHC.PrimopWrappers: notWord8# :: Word8# -> Word8#
+ GHC.PrimopWrappers: plusInt16# :: Int16# -> Int16# -> Int16#
+ GHC.PrimopWrappers: plusInt8# :: Int8# -> Int8# -> Int8#
+ GHC.PrimopWrappers: plusWord16# :: Word16# -> Word16# -> Word16#
+ GHC.PrimopWrappers: plusWord8# :: Word8# -> Word8# -> Word8#
+ GHC.PrimopWrappers: quotInt16# :: Int16# -> Int16# -> Int16#
+ GHC.PrimopWrappers: quotInt8# :: Int8# -> Int8# -> Int8#
+ GHC.PrimopWrappers: quotRemInt16# :: Int16# -> Int16# -> (# Int16#, Int16# #)
+ GHC.PrimopWrappers: quotRemInt8# :: Int8# -> Int8# -> (# Int8#, Int8# #)
+ GHC.PrimopWrappers: quotRemWord16# :: Word16# -> Word16# -> (# Word16#, Word16# #)
+ GHC.PrimopWrappers: quotRemWord8# :: Word8# -> Word8# -> (# Word8#, Word8# #)
+ GHC.PrimopWrappers: quotWord16# :: Word16# -> Word16# -> Word16#
+ GHC.PrimopWrappers: quotWord8# :: Word8# -> Word8# -> Word8#
+ GHC.PrimopWrappers: remInt16# :: Int16# -> Int16# -> Int16#
+ GHC.PrimopWrappers: remInt8# :: Int8# -> Int8# -> Int8#
+ GHC.PrimopWrappers: remWord16# :: Word16# -> Word16# -> Word16#
+ GHC.PrimopWrappers: remWord8# :: Word8# -> Word8# -> Word8#
+ GHC.PrimopWrappers: shrinkSmallMutableArray# :: SmallMutableArray# s a -> Int# -> State# s -> State# s
+ GHC.PrimopWrappers: subInt16# :: Int16# -> Int16# -> Int16#
+ GHC.PrimopWrappers: subInt8# :: Int8# -> Int8# -> Int8#
+ GHC.PrimopWrappers: subWord16# :: Word16# -> Word16# -> Word16#
+ GHC.PrimopWrappers: subWord8# :: Word8# -> Word8# -> Word8#
+ GHC.PrimopWrappers: timesInt16# :: Int16# -> Int16# -> Int16#
+ GHC.PrimopWrappers: timesInt8# :: Int8# -> Int8# -> Int8#
+ GHC.PrimopWrappers: timesWord16# :: Word16# -> Word16# -> Word16#
+ GHC.PrimopWrappers: timesWord8# :: Word8# -> Word8# -> Word8#
+ GHC.PrimopWrappers: traceBinaryEvent# :: Addr# -> Int# -> State# s -> State# s
+ GHC.Types: Int16Rep :: RuntimeRep
+ GHC.Types: Int32Rep :: RuntimeRep
+ GHC.Types: Int8Rep :: RuntimeRep
+ GHC.Types: Word16Rep :: RuntimeRep
+ GHC.Types: Word32Rep :: RuntimeRep
+ GHC.Types: Word8Rep :: RuntimeRep
- GHC.Types: class Coercible a b
+ GHC.Types: class Coercible (a :: k) (b :: k)
- GHC.Types: data TYPE (a :: RuntimeRep) :: RuntimeRep -> Type
+ GHC.Types: data TYPE (a :: RuntimeRep)
- GHC.Types: type Type = TYPE 'LiftedRep
+ GHC.Types: type Type = TYPE 'LiftedRep
Files
- GHC/Classes.hs +29/−19
- GHC/IntWord64.hs +1/−1
- GHC/Magic.hs +18/−11
- GHC/Prim.hs +8469/−7002
- GHC/Prim/Ext.hs +105/−0
- GHC/PrimopWrappers.hs +245/−7
- GHC/Types.hs +40/−6
- Setup.hs +0/−2
- cbits/atomic.c +3/−1
- cbits/bitrev.c +81/−0
- changelog.md +73/−2
- ghc-prim.cabal +8/−4
GHC/Classes.hs view
@@ -14,7 +14,7 @@ -- -Wno-unused-top-binds is there (I hope) to stop Haddock complaining -- about the constraint tuples being defined but not used -{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-} ----------------------------------------------------------------------------- -- | -- Module : GHC.Classes@@ -37,7 +37,7 @@ Eq(..), Ord(..), -- ** Monomorphic equality operators- -- | See GHC.Classes#matching_overloaded_methods_in_rules+ -- $matching_overloaded_methods_in_rules eqInt, neInt, eqWord, neWord, eqChar, neChar,@@ -81,9 +81,11 @@ fragile. For instance, consider this motivating example from the @bytestring@ library, -> break :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString)-> breakByte :: Word8 -> ByteString -> (ByteString, ByteString)-> {-# RULES "break -> breakByte" forall a. break (== x) = breakByte x #-}+@+break :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString)+breakByte :: Word8 -> ByteString -> (ByteString, ByteString)+\{\-\# RULES "break -> breakByte" forall a. break (== x) = breakByte x \#\-\}+@ Here we have two functions, with @breakByte@ providing an optimized implementation of @break@ where the predicate is merely testing for equality@@ -95,23 +97,27 @@ instances defined in terms of helper functions with inlinings delayed to phase 1. For instance, @Word8@\'s @Eq@ instance looks like, -> instance Eq Word8 where-> (==) = eqWord8-> (/=) = neWord8->-> eqWord8, neWord8 :: Word8 -> Word8 -> Bool-> eqWord8 (W8# x) (W8# y) = ...-> neWord8 (W8# x) (W8# y) = ...-> {-# INLINE [1] eqWord8 #-}-> {-# INLINE [1] neWord8 #-}+@+instance Eq Word8 where+ (==) = eqWord8+ (/=) = neWord8 +eqWord8, neWord8 :: Word8 -> Word8 -> Bool+eqWord8 (W8# x) (W8# y) = ...+neWord8 (W8# x) (W8# y) = ...+\{\-\# INLINE [1] eqWord8 \#\-\}+\{\-\# INLINE [1] neWord8 \#\-\}+@+ This allows us to save our @break@ rule above by rewriting it to instead match against @eqWord8@, -> {-# RULES "break -> breakByte" forall a. break (`eqWord8` x) = breakByte x #-}+@+\{\-\# RULES "break -> breakByte" forall a. break (`eqWord8` x) = breakByte x \#\-\}+@ -Currently this is only done for '(==)', '(/=)', '(<)', '(<=)', '(>)', and '(>=)'-for the types in "GHC.Word" and "GHC.Int".+Currently this is only done for @('==')@, @('/=')@, @('<')@, @('<=')@, @('>')@,+and @('>=')@ for the types in "GHC.Word" and "GHC.Int". -} -- | The 'Eq' class defines equality ('==') and inequality ('/=').@@ -325,6 +331,10 @@ -- 7. @min x y == if x <= y then x else y@ = 'True' -- 8. @max x y == if x >= y then x else y@ = 'True' --+-- Note that (7.) and (8.) do /not/ require 'min' and 'max' to return either of+-- their arguments. The result is merely required to /equal/ one of the+-- arguments in terms of '(==)'.+-- -- Minimal complete definition: either 'compare' or '<='. -- Using 'compare' can be more efficient for complex types. --@@ -514,12 +524,12 @@ -- Boolean functions --- | Boolean \"and\"+-- | Boolean \"and\", lazy in the second argument (&&) :: Bool -> Bool -> Bool True && x = x False && _ = False --- | Boolean \"or\"+-- | Boolean \"or\", lazy in the second argument (||) :: Bool -> Bool -> Bool True || _ = True False || x = x
GHC/IntWord64.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE CPP, MagicHash, NoImplicitPrelude, UnliftedFFITypes #-}-{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK not-home #-} ----------------------------------------------------------------------------- -- | -- Module : GHC.IntWord64
GHC/Magic.hs view
@@ -30,20 +30,27 @@ -- See Note [magicIds] in MkId.hs -------------------------------------------------- -import GHC.Prim-import GHC.CString ()+-- Here import TYPE explicitly from GHC.Types and not from GHC.Prim. This is+-- because TYPE is not exported by the source Haskell module generated by+-- genprimops which Haddock will typecheck.+-- Likewise, realWorld# is not generated by genprimops so we use CPP and only+-- import/use it when not building haddock docs.+#if !defined(__HADDOCK_VERSION__)+import GHC.Prim (realWorld#)+#endif+import GHC.Prim (State#, RealWorld) import GHC.Types (RuntimeRep, TYPE) --- | The call @inline f@ arranges that 'f' is inlined, regardless of+-- | The call @inline f@ arranges that @f@ is inlined, regardless of -- its size. More precisely, the call @inline f@ rewrites to the -- right-hand side of @f@'s definition. This allows the programmer to -- control inlining from a particular call site rather than the--- definition site of the function (c.f. 'INLINE' pragmas).+-- definition site of the function (c.f. @INLINE@ pragmas). -- -- This inlining occurs regardless of the argument to the call or the -- size of @f@'s definition; it is unconditional. The main caveat is -- that @f@'s definition must be visible to the compiler; it is--- therefore recommended to mark the function with an 'INLINABLE'+-- therefore recommended to mark the function with an @INLINABLE@ -- pragma at its definition so that GHC guarantees to record its -- unfolding regardless of size. --@@ -53,7 +60,7 @@ inline :: a -> a inline x = x --- | The call @noinline f@ arranges that 'f' will not be inlined.+-- | The call @noinline f@ arranges that @f@ will not be inlined. -- It is removed during CorePrep so that its use imposes no overhead -- (besides the fact that it blocks inlining.) {-# NOINLINE noinline #-}@@ -61,7 +68,7 @@ noinline x = x -- | The 'lazy' function restrains strictness analysis a little. The--- call @lazy e@ means the same as 'e', but 'lazy' has a magical+-- call @lazy e@ means the same as @e@, but 'lazy' has a magical -- property so far as strictness analysis is concerned: it is lazy in -- its first argument, even though its semantics is strict. After -- strictness analysis has run, calls to 'lazy' are inlined to be the@@ -74,8 +81,8 @@ -- > par :: a -> b -> b -- > par x y = case (par# x) of _ -> lazy y ----- If 'lazy' were not lazy, 'par' would look strict in 'y' which--- would defeat the whole purpose of 'par'.+-- If 'lazy' were not lazy, 'Control.Parallel.par' would look strict in+-- @y@ which would defeat the whole purpose of 'Control.Parallel.par'. -- -- Like 'seq', the argument of 'lazy' can have an unboxed type. lazy :: a -> a@@ -105,8 +112,8 @@ -- Implementation note: This is wired in in MkId.hs, so the code here is -- mostly there to have a place for the documentation. --- | Apply a function to a 'State# RealWorld' token. When manually applying--- a function to `realWorld#`, it is necessary to use `NOINLINE` to prevent+-- | Apply a function to a @'State#' 'RealWorld'@ token. When manually applying+-- a function to `realWorld#`, it is necessary to use @NOINLINE@ to prevent -- semantically undesirable floating. `runRW#` is inlined, but only very late -- in compilation after all floating is complete.
GHC/Prim.hs view
@@ -22,7008 +22,8475 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE UnboxedTuples #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}-module GHC.Prim (- --- * The word size story.--- |Haskell98 specifies that signed integers (type @Int@)--- must contain at least 30 bits. GHC always implements @Int@ using the primitive type @Int\#@, whose size equals--- the @MachDeps.h@ constant @WORD\_SIZE\_IN\_BITS@.--- This is normally set based on the @config.h@ parameter--- @SIZEOF\_HSWORD@, i.e., 32 bits on 32-bit machines, 64--- bits on 64-bit machines. However, it can also be explicitly--- set to a smaller number, e.g., 31 bits, to allow the--- possibility of using tag bits. Currently GHC itself has only--- 32-bit and 64-bit variants, but 30 or 31-bit code can be--- exported as an external core file for use in other back ends.--- --- GHC also implements a primitive unsigned integer type @Word\#@ which always has the same number of bits as @Int\#@.--- --- In addition, GHC supports families of explicit-sized integers--- and words at 8, 16, 32, and 64 bits, with the usual--- arithmetic operations, comparisons, and a range of--- conversions. The 8-bit and 16-bit sizes are always--- represented as @Int\#@ and @Word\#@, and the--- operations implemented in terms of the primops on these--- types, with suitable range restrictions on the results (using--- the @narrow$n$Int\#@ and @narrow$n$Word\#@ families--- of primops. The 32-bit sizes are represented using @Int\#@ and @Word\#@ when @WORD\_SIZE\_IN\_BITS@--- $\geq$ 32; otherwise, these are represented using distinct--- primitive types @Int32\#@ and @Word32\#@. These (when--- needed) have a complete set of corresponding operations;--- however, nearly all of these are implemented as external C--- functions rather than as primops. Exactly the same story--- applies to the 64-bit sizes. All of these details are hidden--- under the @PrelInt@ and @PrelWord@ modules, which use--- @\#if@-defs to invoke the appropriate types and--- operators.--- --- Word size also matters for the families of primops for--- indexing\/reading\/writing fixed-size quantities at offsets--- from an array base, address, or foreign pointer. Here, a--- slightly different approach is taken. The names of these--- primops are fixed, but their /types/ vary according to--- the value of @WORD\_SIZE\_IN\_BITS@. For example, if word--- size is at least 32 bits then an operator like--- @indexInt32Array\#@ has type @ByteArray\# -> Int\# -> Int\#@; otherwise it has type @ByteArray\# -> Int\# -> Int32\#@. This approach confines the necessary @\#if@-defs to this file; no conditional compilation is needed--- in the files that expose these primops.--- --- Finally, there are strongly deprecated primops for coercing--- between @Addr\#@, the primitive type of machine--- addresses, and @Int\#@. These are pretty bogus anyway,--- but will work on existing 32-bit and 64-bit GHC targets; they--- are completely bogus when tag bits are used in @Int\#@,--- so are not available in this case. --- --- * Char#--- |Operations on 31-bit characters.--- Char#,- gtChar#,- geChar#,- eqChar#,- neChar#,- ltChar#,- leChar#,- ord#,- --- * Int#--- |Operations on native-size integers (30+ bits).--- Int#,- (+#),- (-#),- (*#),- mulIntMayOflo#,- quotInt#,- remInt#,- quotRemInt#,- andI#,- orI#,- xorI#,- notI#,- negateInt#,- addIntC#,- subIntC#,- (>#),- (>=#),- (==#),- (/=#),- (<#),- (<=#),- chr#,- int2Word#,- int2Float#,- int2Double#,- word2Float#,- word2Double#,- uncheckedIShiftL#,- uncheckedIShiftRA#,- uncheckedIShiftRL#,- --- * Word#--- |Operations on native-sized unsigned words (30+ bits).--- Word#,- plusWord#,- addWordC#,- subWordC#,- plusWord2#,- minusWord#,- timesWord#,- timesWord2#,- quotWord#,- remWord#,- quotRemWord#,- quotRemWord2#,- and#,- or#,- xor#,- not#,- uncheckedShiftL#,- uncheckedShiftRL#,- word2Int#,- gtWord#,- geWord#,- eqWord#,- neWord#,- ltWord#,- leWord#,- popCnt8#,- popCnt16#,- popCnt32#,- popCnt64#,- popCnt#,- pdep8#,- pdep16#,- pdep32#,- pdep64#,- pdep#,- pext8#,- pext16#,- pext32#,- pext64#,- pext#,- clz8#,- clz16#,- clz32#,- clz64#,- clz#,- ctz8#,- ctz16#,- ctz32#,- ctz64#,- ctz#,- byteSwap16#,- byteSwap32#,- byteSwap64#,- byteSwap#,- --- * Narrowings--- |Explicit narrowing of native-sized ints or words.--- narrow8Int#,- narrow16Int#,- narrow32Int#,- narrow8Word#,- narrow16Word#,- narrow32Word#,- --- * Double#--- |Operations on double-precision (64 bit) floating-point numbers.--- Double#,- (>##),- (>=##),- (==##),- (/=##),- (<##),- (<=##),- (+##),- (-##),- (*##),- (/##),- negateDouble#,- fabsDouble#,- double2Int#,- double2Float#,- expDouble#,- logDouble#,- sqrtDouble#,- sinDouble#,- cosDouble#,- tanDouble#,- asinDouble#,- acosDouble#,- atanDouble#,- sinhDouble#,- coshDouble#,- tanhDouble#,- (**##),- decodeDouble_2Int#,- decodeDouble_Int64#,- --- * Float#--- |Operations on single-precision (32-bit) floating-point numbers.--- Float#,- gtFloat#,- geFloat#,- eqFloat#,- neFloat#,- ltFloat#,- leFloat#,- plusFloat#,- minusFloat#,- timesFloat#,- divideFloat#,- negateFloat#,- fabsFloat#,- float2Int#,- expFloat#,- logFloat#,- sqrtFloat#,- sinFloat#,- cosFloat#,- tanFloat#,- asinFloat#,- acosFloat#,- atanFloat#,- sinhFloat#,- coshFloat#,- tanhFloat#,- powerFloat#,- float2Double#,- decodeFloat_Int#,- --- * Arrays--- |Operations on @Array\#@.--- Array#,- MutableArray#,- newArray#,- sameMutableArray#,- readArray#,- writeArray#,- sizeofArray#,- sizeofMutableArray#,- indexArray#,- unsafeFreezeArray#,- unsafeThawArray#,- copyArray#,- copyMutableArray#,- cloneArray#,- cloneMutableArray#,- freezeArray#,- thawArray#,- casArray#,- --- * Small Arrays--- |Operations on @SmallArray\#@. A @SmallArray\#@ works--- just like an @Array\#@, but with different space use and--- performance characteristics (that are often useful with small--- arrays). The @SmallArray\#@ and @SmallMutableArray#@--- lack a \`card table\'. The purpose of a card table is to avoid--- having to scan every element of the array on each GC by--- keeping track of which elements have changed since the last GC--- and only scanning those that have changed. So the consequence--- of there being no card table is that the representation is--- somewhat smaller and the writes are somewhat faster (because--- the card table does not need to be updated). The disadvantage--- of course is that for a @SmallMutableArray#@ the whole--- array has to be scanned on each GC. Thus it is best suited for--- use cases where the mutable array is not long lived, e.g.--- where a mutable array is initialised quickly and then frozen--- to become an immutable @SmallArray\#@.--- --- SmallArray#,- SmallMutableArray#,- newSmallArray#,- sameSmallMutableArray#,- readSmallArray#,- writeSmallArray#,- sizeofSmallArray#,- sizeofSmallMutableArray#,- indexSmallArray#,- unsafeFreezeSmallArray#,- unsafeThawSmallArray#,- copySmallArray#,- copySmallMutableArray#,- cloneSmallArray#,- cloneSmallMutableArray#,- freezeSmallArray#,- thawSmallArray#,- casSmallArray#,- --- * Byte Arrays--- |Operations on @ByteArray\#@. A @ByteArray\#@ is a just a region of--- raw memory in the garbage-collected heap, which is not--- scanned for pointers. It carries its own size (in bytes).--- There are--- three sets of operations for accessing byte array contents:--- index for reading from immutable byte arrays, and read\/write--- for mutable byte arrays. Each set contains operations for a--- range of useful primitive data types. Each operation takes--- an offset measured in terms of the size of the primitive type--- being read or written.--- ByteArray#,- MutableByteArray#,- newByteArray#,- newPinnedByteArray#,- newAlignedPinnedByteArray#,- isMutableByteArrayPinned#,- isByteArrayPinned#,- byteArrayContents#,- sameMutableByteArray#,- shrinkMutableByteArray#,- resizeMutableByteArray#,- unsafeFreezeByteArray#,- sizeofByteArray#,- sizeofMutableByteArray#,- getSizeofMutableByteArray#,- indexCharArray#,- indexWideCharArray#,- indexIntArray#,- indexWordArray#,- indexAddrArray#,- indexFloatArray#,- indexDoubleArray#,- indexStablePtrArray#,- indexInt8Array#,- indexInt16Array#,- indexInt32Array#,- indexInt64Array#,- indexWord8Array#,- indexWord16Array#,- indexWord32Array#,- indexWord64Array#,- indexWord8ArrayAsChar#,- indexWord8ArrayAsWideChar#,- indexWord8ArrayAsAddr#,- indexWord8ArrayAsFloat#,- indexWord8ArrayAsDouble#,- indexWord8ArrayAsStablePtr#,- indexWord8ArrayAsInt16#,- indexWord8ArrayAsInt32#,- indexWord8ArrayAsInt64#,- indexWord8ArrayAsInt#,- indexWord8ArrayAsWord16#,- indexWord8ArrayAsWord32#,- indexWord8ArrayAsWord64#,- indexWord8ArrayAsWord#,- readCharArray#,- readWideCharArray#,- readIntArray#,- readWordArray#,- readAddrArray#,- readFloatArray#,- readDoubleArray#,- readStablePtrArray#,- readInt8Array#,- readInt16Array#,- readInt32Array#,- readInt64Array#,- readWord8Array#,- readWord16Array#,- readWord32Array#,- readWord64Array#,- readWord8ArrayAsChar#,- readWord8ArrayAsWideChar#,- readWord8ArrayAsAddr#,- readWord8ArrayAsFloat#,- readWord8ArrayAsDouble#,- readWord8ArrayAsStablePtr#,- readWord8ArrayAsInt16#,- readWord8ArrayAsInt32#,- readWord8ArrayAsInt64#,- readWord8ArrayAsInt#,- readWord8ArrayAsWord16#,- readWord8ArrayAsWord32#,- readWord8ArrayAsWord64#,- readWord8ArrayAsWord#,- writeCharArray#,- writeWideCharArray#,- writeIntArray#,- writeWordArray#,- writeAddrArray#,- writeFloatArray#,- writeDoubleArray#,- writeStablePtrArray#,- writeInt8Array#,- writeInt16Array#,- writeInt32Array#,- writeInt64Array#,- writeWord8Array#,- writeWord16Array#,- writeWord32Array#,- writeWord64Array#,- writeWord8ArrayAsChar#,- writeWord8ArrayAsWideChar#,- writeWord8ArrayAsAddr#,- writeWord8ArrayAsFloat#,- writeWord8ArrayAsDouble#,- writeWord8ArrayAsStablePtr#,- writeWord8ArrayAsInt16#,- writeWord8ArrayAsInt32#,- writeWord8ArrayAsInt64#,- writeWord8ArrayAsInt#,- writeWord8ArrayAsWord16#,- writeWord8ArrayAsWord32#,- writeWord8ArrayAsWord64#,- writeWord8ArrayAsWord#,- compareByteArrays#,- copyByteArray#,- copyMutableByteArray#,- copyByteArrayToAddr#,- copyMutableByteArrayToAddr#,- copyAddrToByteArray#,- setByteArray#,- atomicReadIntArray#,- atomicWriteIntArray#,- casIntArray#,- fetchAddIntArray#,- fetchSubIntArray#,- fetchAndIntArray#,- fetchNandIntArray#,- fetchOrIntArray#,- fetchXorIntArray#,- --- * Arrays of arrays--- |Operations on @ArrayArray\#@. An @ArrayArray\#@ contains references to {\em unpointed}--- arrays, such as @ByteArray\#s@. Hence, it is not parameterised by the element types,--- just like a @ByteArray\#@, but it needs to be scanned during GC, just like an @Array#@.--- We represent an @ArrayArray\#@ exactly as a @Array\#@, but provide element-type-specific--- indexing, reading, and writing.--- ArrayArray#,- MutableArrayArray#,- newArrayArray#,- sameMutableArrayArray#,- unsafeFreezeArrayArray#,- sizeofArrayArray#,- sizeofMutableArrayArray#,- indexByteArrayArray#,- indexArrayArrayArray#,- readByteArrayArray#,- readMutableByteArrayArray#,- readArrayArrayArray#,- readMutableArrayArrayArray#,- writeByteArrayArray#,- writeMutableByteArrayArray#,- writeArrayArrayArray#,- writeMutableArrayArrayArray#,- copyArrayArray#,- copyMutableArrayArray#,- --- * Addr#--- |--- Addr#,- nullAddr#,- plusAddr#,- minusAddr#,- remAddr#,- addr2Int#,- int2Addr#,- gtAddr#,- geAddr#,- eqAddr#,- neAddr#,- ltAddr#,- leAddr#,- indexCharOffAddr#,- indexWideCharOffAddr#,- indexIntOffAddr#,- indexWordOffAddr#,- indexAddrOffAddr#,- indexFloatOffAddr#,- indexDoubleOffAddr#,- indexStablePtrOffAddr#,- indexInt8OffAddr#,- indexInt16OffAddr#,- indexInt32OffAddr#,- indexInt64OffAddr#,- indexWord8OffAddr#,- indexWord16OffAddr#,- indexWord32OffAddr#,- indexWord64OffAddr#,- readCharOffAddr#,- readWideCharOffAddr#,- readIntOffAddr#,- readWordOffAddr#,- readAddrOffAddr#,- readFloatOffAddr#,- readDoubleOffAddr#,- readStablePtrOffAddr#,- readInt8OffAddr#,- readInt16OffAddr#,- readInt32OffAddr#,- readInt64OffAddr#,- readWord8OffAddr#,- readWord16OffAddr#,- readWord32OffAddr#,- readWord64OffAddr#,- writeCharOffAddr#,- writeWideCharOffAddr#,- writeIntOffAddr#,- writeWordOffAddr#,- writeAddrOffAddr#,- writeFloatOffAddr#,- writeDoubleOffAddr#,- writeStablePtrOffAddr#,- writeInt8OffAddr#,- writeInt16OffAddr#,- writeInt32OffAddr#,- writeInt64OffAddr#,- writeWord8OffAddr#,- writeWord16OffAddr#,- writeWord32OffAddr#,- writeWord64OffAddr#,- --- * Mutable variables--- |Operations on MutVar\#s.--- MutVar#,- newMutVar#,- readMutVar#,- writeMutVar#,- sameMutVar#,- atomicModifyMutVar#,- casMutVar#,- --- * Exceptions--- |--- catch#,- raise#,- raiseIO#,- maskAsyncExceptions#,- maskUninterruptible#,- unmaskAsyncExceptions#,- getMaskingState#,- --- * STM-accessible Mutable Variables--- |--- TVar#,- atomically#,- retry#,- catchRetry#,- catchSTM#,- newTVar#,- readTVar#,- readTVarIO#,- writeTVar#,- sameTVar#,- --- * Synchronized Mutable Variables--- |Operations on @MVar\#@s. --- MVar#,- newMVar#,- takeMVar#,- tryTakeMVar#,- putMVar#,- tryPutMVar#,- readMVar#,- tryReadMVar#,- sameMVar#,- isEmptyMVar#,- --- * Delay\/wait operations--- |--- delay#,- waitRead#,- waitWrite#,- --- * Concurrency primitives--- |--- State#,- RealWorld,- ThreadId#,- fork#,- forkOn#,- killThread#,- yield#,- myThreadId#,- labelThread#,- isCurrentThreadBound#,- noDuplicate#,- threadStatus#,- --- * Weak pointers--- |--- Weak#,- mkWeak#,- mkWeakNoFinalizer#,- addCFinalizerToWeak#,- deRefWeak#,- finalizeWeak#,- touch#,- --- * Stable pointers and names--- |--- StablePtr#,- StableName#,- makeStablePtr#,- deRefStablePtr#,- eqStablePtr#,- makeStableName#,- eqStableName#,- stableNameToInt#,- --- * Compact normal form--- |--- Compact#,- compactNew#,- compactResize#,- compactContains#,- compactContainsAny#,- compactGetFirstBlock#,- compactGetNextBlock#,- compactAllocateBlock#,- compactFixupPointers#,- compactAdd#,- compactAddWithSharing#,- compactSize#,- --- * Unsafe pointer equality--- |--- reallyUnsafePtrEquality#,- --- * Parallelism--- |--- par#,- spark#,- seq#,- getSpark#,- numSparks#,- --- * Tag to enum stuff--- |Convert back and forth between values of enumerated types--- and small integers.--- dataToTag#,- tagToEnum#,- --- * Bytecode operations--- |Support for manipulating bytecode objects used by the interpreter and--- linker.--- --- Bytecode objects are heap objects which represent top-level bindings and--- contain a list of instructions and data needed by these instructions.--- BCO#,- addrToAny#,- anyToAddr#,- mkApUpd0#,- newBCO#,- unpackClosure#,- getApStackVal#,- --- * Misc--- |These aren\'t nearly as wired in as Etc...--- getCCSOf#,- getCurrentCCS#,- clearCCS#,- --- * Etc--- |Miscellaneous built-ins--- Proxy#,- proxy#,- seq,- unsafeCoerce#,- traceEvent#,- traceMarker#,- getThreadAllocationCounter#,- setThreadAllocationCounter#,- --- * Safe coercions--- |--- coerce,- --- * SIMD Vectors--- |Operations on SIMD vectors.--- Int8X16#,- Int16X8#,- Int32X4#,- Int64X2#,- Int8X32#,- Int16X16#,- Int32X8#,- Int64X4#,- Int8X64#,- Int16X32#,- Int32X16#,- Int64X8#,- Word8X16#,- Word16X8#,- Word32X4#,- Word64X2#,- Word8X32#,- Word16X16#,- Word32X8#,- Word64X4#,- Word8X64#,- Word16X32#,- Word32X16#,- Word64X8#,- FloatX4#,- DoubleX2#,- FloatX8#,- DoubleX4#,- FloatX16#,- DoubleX8#,- broadcastInt8X16#,- broadcastInt16X8#,- broadcastInt32X4#,- broadcastInt64X2#,- broadcastInt8X32#,- broadcastInt16X16#,- broadcastInt32X8#,- broadcastInt64X4#,- broadcastInt8X64#,- broadcastInt16X32#,- broadcastInt32X16#,- broadcastInt64X8#,- broadcastWord8X16#,- broadcastWord16X8#,- broadcastWord32X4#,- broadcastWord64X2#,- broadcastWord8X32#,- broadcastWord16X16#,- broadcastWord32X8#,- broadcastWord64X4#,- broadcastWord8X64#,- broadcastWord16X32#,- broadcastWord32X16#,- broadcastWord64X8#,- broadcastFloatX4#,- broadcastDoubleX2#,- broadcastFloatX8#,- broadcastDoubleX4#,- broadcastFloatX16#,- broadcastDoubleX8#,- packInt8X16#,- packInt16X8#,- packInt32X4#,- packInt64X2#,- packInt8X32#,- packInt16X16#,- packInt32X8#,- packInt64X4#,- packInt8X64#,- packInt16X32#,- packInt32X16#,- packInt64X8#,- packWord8X16#,- packWord16X8#,- packWord32X4#,- packWord64X2#,- packWord8X32#,- packWord16X16#,- packWord32X8#,- packWord64X4#,- packWord8X64#,- packWord16X32#,- packWord32X16#,- packWord64X8#,- packFloatX4#,- packDoubleX2#,- packFloatX8#,- packDoubleX4#,- packFloatX16#,- packDoubleX8#,- unpackInt8X16#,- unpackInt16X8#,- unpackInt32X4#,- unpackInt64X2#,- unpackInt8X32#,- unpackInt16X16#,- unpackInt32X8#,- unpackInt64X4#,- unpackInt8X64#,- unpackInt16X32#,- unpackInt32X16#,- unpackInt64X8#,- unpackWord8X16#,- unpackWord16X8#,- unpackWord32X4#,- unpackWord64X2#,- unpackWord8X32#,- unpackWord16X16#,- unpackWord32X8#,- unpackWord64X4#,- unpackWord8X64#,- unpackWord16X32#,- unpackWord32X16#,- unpackWord64X8#,- unpackFloatX4#,- unpackDoubleX2#,- unpackFloatX8#,- unpackDoubleX4#,- unpackFloatX16#,- unpackDoubleX8#,- insertInt8X16#,- insertInt16X8#,- insertInt32X4#,- insertInt64X2#,- insertInt8X32#,- insertInt16X16#,- insertInt32X8#,- insertInt64X4#,- insertInt8X64#,- insertInt16X32#,- insertInt32X16#,- insertInt64X8#,- insertWord8X16#,- insertWord16X8#,- insertWord32X4#,- insertWord64X2#,- insertWord8X32#,- insertWord16X16#,- insertWord32X8#,- insertWord64X4#,- insertWord8X64#,- insertWord16X32#,- insertWord32X16#,- insertWord64X8#,- insertFloatX4#,- insertDoubleX2#,- insertFloatX8#,- insertDoubleX4#,- insertFloatX16#,- insertDoubleX8#,- plusInt8X16#,- plusInt16X8#,- plusInt32X4#,- plusInt64X2#,- plusInt8X32#,- plusInt16X16#,- plusInt32X8#,- plusInt64X4#,- plusInt8X64#,- plusInt16X32#,- plusInt32X16#,- plusInt64X8#,- plusWord8X16#,- plusWord16X8#,- plusWord32X4#,- plusWord64X2#,- plusWord8X32#,- plusWord16X16#,- plusWord32X8#,- plusWord64X4#,- plusWord8X64#,- plusWord16X32#,- plusWord32X16#,- plusWord64X8#,- plusFloatX4#,- plusDoubleX2#,- plusFloatX8#,- plusDoubleX4#,- plusFloatX16#,- plusDoubleX8#,- minusInt8X16#,- minusInt16X8#,- minusInt32X4#,- minusInt64X2#,- minusInt8X32#,- minusInt16X16#,- minusInt32X8#,- minusInt64X4#,- minusInt8X64#,- minusInt16X32#,- minusInt32X16#,- minusInt64X8#,- minusWord8X16#,- minusWord16X8#,- minusWord32X4#,- minusWord64X2#,- minusWord8X32#,- minusWord16X16#,- minusWord32X8#,- minusWord64X4#,- minusWord8X64#,- minusWord16X32#,- minusWord32X16#,- minusWord64X8#,- minusFloatX4#,- minusDoubleX2#,- minusFloatX8#,- minusDoubleX4#,- minusFloatX16#,- minusDoubleX8#,- timesInt8X16#,- timesInt16X8#,- timesInt32X4#,- timesInt64X2#,- timesInt8X32#,- timesInt16X16#,- timesInt32X8#,- timesInt64X4#,- timesInt8X64#,- timesInt16X32#,- timesInt32X16#,- timesInt64X8#,- timesWord8X16#,- timesWord16X8#,- timesWord32X4#,- timesWord64X2#,- timesWord8X32#,- timesWord16X16#,- timesWord32X8#,- timesWord64X4#,- timesWord8X64#,- timesWord16X32#,- timesWord32X16#,- timesWord64X8#,- timesFloatX4#,- timesDoubleX2#,- timesFloatX8#,- timesDoubleX4#,- timesFloatX16#,- timesDoubleX8#,- divideFloatX4#,- divideDoubleX2#,- divideFloatX8#,- divideDoubleX4#,- divideFloatX16#,- divideDoubleX8#,- quotInt8X16#,- quotInt16X8#,- quotInt32X4#,- quotInt64X2#,- quotInt8X32#,- quotInt16X16#,- quotInt32X8#,- quotInt64X4#,- quotInt8X64#,- quotInt16X32#,- quotInt32X16#,- quotInt64X8#,- quotWord8X16#,- quotWord16X8#,- quotWord32X4#,- quotWord64X2#,- quotWord8X32#,- quotWord16X16#,- quotWord32X8#,- quotWord64X4#,- quotWord8X64#,- quotWord16X32#,- quotWord32X16#,- quotWord64X8#,- remInt8X16#,- remInt16X8#,- remInt32X4#,- remInt64X2#,- remInt8X32#,- remInt16X16#,- remInt32X8#,- remInt64X4#,- remInt8X64#,- remInt16X32#,- remInt32X16#,- remInt64X8#,- remWord8X16#,- remWord16X8#,- remWord32X4#,- remWord64X2#,- remWord8X32#,- remWord16X16#,- remWord32X8#,- remWord64X4#,- remWord8X64#,- remWord16X32#,- remWord32X16#,- remWord64X8#,- negateInt8X16#,- negateInt16X8#,- negateInt32X4#,- negateInt64X2#,- negateInt8X32#,- negateInt16X16#,- negateInt32X8#,- negateInt64X4#,- negateInt8X64#,- negateInt16X32#,- negateInt32X16#,- negateInt64X8#,- negateFloatX4#,- negateDoubleX2#,- negateFloatX8#,- negateDoubleX4#,- negateFloatX16#,- negateDoubleX8#,- indexInt8X16Array#,- indexInt16X8Array#,- indexInt32X4Array#,- indexInt64X2Array#,- indexInt8X32Array#,- indexInt16X16Array#,- indexInt32X8Array#,- indexInt64X4Array#,- indexInt8X64Array#,- indexInt16X32Array#,- indexInt32X16Array#,- indexInt64X8Array#,- indexWord8X16Array#,- indexWord16X8Array#,- indexWord32X4Array#,- indexWord64X2Array#,- indexWord8X32Array#,- indexWord16X16Array#,- indexWord32X8Array#,- indexWord64X4Array#,- indexWord8X64Array#,- indexWord16X32Array#,- indexWord32X16Array#,- indexWord64X8Array#,- indexFloatX4Array#,- indexDoubleX2Array#,- indexFloatX8Array#,- indexDoubleX4Array#,- indexFloatX16Array#,- indexDoubleX8Array#,- readInt8X16Array#,- readInt16X8Array#,- readInt32X4Array#,- readInt64X2Array#,- readInt8X32Array#,- readInt16X16Array#,- readInt32X8Array#,- readInt64X4Array#,- readInt8X64Array#,- readInt16X32Array#,- readInt32X16Array#,- readInt64X8Array#,- readWord8X16Array#,- readWord16X8Array#,- readWord32X4Array#,- readWord64X2Array#,- readWord8X32Array#,- readWord16X16Array#,- readWord32X8Array#,- readWord64X4Array#,- readWord8X64Array#,- readWord16X32Array#,- readWord32X16Array#,- readWord64X8Array#,- readFloatX4Array#,- readDoubleX2Array#,- readFloatX8Array#,- readDoubleX4Array#,- readFloatX16Array#,- readDoubleX8Array#,- writeInt8X16Array#,- writeInt16X8Array#,- writeInt32X4Array#,- writeInt64X2Array#,- writeInt8X32Array#,- writeInt16X16Array#,- writeInt32X8Array#,- writeInt64X4Array#,- writeInt8X64Array#,- writeInt16X32Array#,- writeInt32X16Array#,- writeInt64X8Array#,- writeWord8X16Array#,- writeWord16X8Array#,- writeWord32X4Array#,- writeWord64X2Array#,- writeWord8X32Array#,- writeWord16X16Array#,- writeWord32X8Array#,- writeWord64X4Array#,- writeWord8X64Array#,- writeWord16X32Array#,- writeWord32X16Array#,- writeWord64X8Array#,- writeFloatX4Array#,- writeDoubleX2Array#,- writeFloatX8Array#,- writeDoubleX4Array#,- writeFloatX16Array#,- writeDoubleX8Array#,- indexInt8X16OffAddr#,- indexInt16X8OffAddr#,- indexInt32X4OffAddr#,- indexInt64X2OffAddr#,- indexInt8X32OffAddr#,- indexInt16X16OffAddr#,- indexInt32X8OffAddr#,- indexInt64X4OffAddr#,- indexInt8X64OffAddr#,- indexInt16X32OffAddr#,- indexInt32X16OffAddr#,- indexInt64X8OffAddr#,- indexWord8X16OffAddr#,- indexWord16X8OffAddr#,- indexWord32X4OffAddr#,- indexWord64X2OffAddr#,- indexWord8X32OffAddr#,- indexWord16X16OffAddr#,- indexWord32X8OffAddr#,- indexWord64X4OffAddr#,- indexWord8X64OffAddr#,- indexWord16X32OffAddr#,- indexWord32X16OffAddr#,- indexWord64X8OffAddr#,- indexFloatX4OffAddr#,- indexDoubleX2OffAddr#,- indexFloatX8OffAddr#,- indexDoubleX4OffAddr#,- indexFloatX16OffAddr#,- indexDoubleX8OffAddr#,- readInt8X16OffAddr#,- readInt16X8OffAddr#,- readInt32X4OffAddr#,- readInt64X2OffAddr#,- readInt8X32OffAddr#,- readInt16X16OffAddr#,- readInt32X8OffAddr#,- readInt64X4OffAddr#,- readInt8X64OffAddr#,- readInt16X32OffAddr#,- readInt32X16OffAddr#,- readInt64X8OffAddr#,- readWord8X16OffAddr#,- readWord16X8OffAddr#,- readWord32X4OffAddr#,- readWord64X2OffAddr#,- readWord8X32OffAddr#,- readWord16X16OffAddr#,- readWord32X8OffAddr#,- readWord64X4OffAddr#,- readWord8X64OffAddr#,- readWord16X32OffAddr#,- readWord32X16OffAddr#,- readWord64X8OffAddr#,- readFloatX4OffAddr#,- readDoubleX2OffAddr#,- readFloatX8OffAddr#,- readDoubleX4OffAddr#,- readFloatX16OffAddr#,- readDoubleX8OffAddr#,- writeInt8X16OffAddr#,- writeInt16X8OffAddr#,- writeInt32X4OffAddr#,- writeInt64X2OffAddr#,- writeInt8X32OffAddr#,- writeInt16X16OffAddr#,- writeInt32X8OffAddr#,- writeInt64X4OffAddr#,- writeInt8X64OffAddr#,- writeInt16X32OffAddr#,- writeInt32X16OffAddr#,- writeInt64X8OffAddr#,- writeWord8X16OffAddr#,- writeWord16X8OffAddr#,- writeWord32X4OffAddr#,- writeWord64X2OffAddr#,- writeWord8X32OffAddr#,- writeWord16X16OffAddr#,- writeWord32X8OffAddr#,- writeWord64X4OffAddr#,- writeWord8X64OffAddr#,- writeWord16X32OffAddr#,- writeWord32X16OffAddr#,- writeWord64X8OffAddr#,- writeFloatX4OffAddr#,- writeDoubleX2OffAddr#,- writeFloatX8OffAddr#,- writeDoubleX4OffAddr#,- writeFloatX16OffAddr#,- writeDoubleX8OffAddr#,- indexInt8ArrayAsInt8X16#,- indexInt16ArrayAsInt16X8#,- indexInt32ArrayAsInt32X4#,- indexInt64ArrayAsInt64X2#,- indexInt8ArrayAsInt8X32#,- indexInt16ArrayAsInt16X16#,- indexInt32ArrayAsInt32X8#,- indexInt64ArrayAsInt64X4#,- indexInt8ArrayAsInt8X64#,- indexInt16ArrayAsInt16X32#,- indexInt32ArrayAsInt32X16#,- indexInt64ArrayAsInt64X8#,- indexWord8ArrayAsWord8X16#,- indexWord16ArrayAsWord16X8#,- indexWord32ArrayAsWord32X4#,- indexWord64ArrayAsWord64X2#,- indexWord8ArrayAsWord8X32#,- indexWord16ArrayAsWord16X16#,- indexWord32ArrayAsWord32X8#,- indexWord64ArrayAsWord64X4#,- indexWord8ArrayAsWord8X64#,- indexWord16ArrayAsWord16X32#,- indexWord32ArrayAsWord32X16#,- indexWord64ArrayAsWord64X8#,- indexFloatArrayAsFloatX4#,- indexDoubleArrayAsDoubleX2#,- indexFloatArrayAsFloatX8#,- indexDoubleArrayAsDoubleX4#,- indexFloatArrayAsFloatX16#,- indexDoubleArrayAsDoubleX8#,- readInt8ArrayAsInt8X16#,- readInt16ArrayAsInt16X8#,- readInt32ArrayAsInt32X4#,- readInt64ArrayAsInt64X2#,- readInt8ArrayAsInt8X32#,- readInt16ArrayAsInt16X16#,- readInt32ArrayAsInt32X8#,- readInt64ArrayAsInt64X4#,- readInt8ArrayAsInt8X64#,- readInt16ArrayAsInt16X32#,- readInt32ArrayAsInt32X16#,- readInt64ArrayAsInt64X8#,- readWord8ArrayAsWord8X16#,- readWord16ArrayAsWord16X8#,- readWord32ArrayAsWord32X4#,- readWord64ArrayAsWord64X2#,- readWord8ArrayAsWord8X32#,- readWord16ArrayAsWord16X16#,- readWord32ArrayAsWord32X8#,- readWord64ArrayAsWord64X4#,- readWord8ArrayAsWord8X64#,- readWord16ArrayAsWord16X32#,- readWord32ArrayAsWord32X16#,- readWord64ArrayAsWord64X8#,- readFloatArrayAsFloatX4#,- readDoubleArrayAsDoubleX2#,- readFloatArrayAsFloatX8#,- readDoubleArrayAsDoubleX4#,- readFloatArrayAsFloatX16#,- readDoubleArrayAsDoubleX8#,- writeInt8ArrayAsInt8X16#,- writeInt16ArrayAsInt16X8#,- writeInt32ArrayAsInt32X4#,- writeInt64ArrayAsInt64X2#,- writeInt8ArrayAsInt8X32#,- writeInt16ArrayAsInt16X16#,- writeInt32ArrayAsInt32X8#,- writeInt64ArrayAsInt64X4#,- writeInt8ArrayAsInt8X64#,- writeInt16ArrayAsInt16X32#,- writeInt32ArrayAsInt32X16#,- writeInt64ArrayAsInt64X8#,- writeWord8ArrayAsWord8X16#,- writeWord16ArrayAsWord16X8#,- writeWord32ArrayAsWord32X4#,- writeWord64ArrayAsWord64X2#,- writeWord8ArrayAsWord8X32#,- writeWord16ArrayAsWord16X16#,- writeWord32ArrayAsWord32X8#,- writeWord64ArrayAsWord64X4#,- writeWord8ArrayAsWord8X64#,- writeWord16ArrayAsWord16X32#,- writeWord32ArrayAsWord32X16#,- writeWord64ArrayAsWord64X8#,- writeFloatArrayAsFloatX4#,- writeDoubleArrayAsDoubleX2#,- writeFloatArrayAsFloatX8#,- writeDoubleArrayAsDoubleX4#,- writeFloatArrayAsFloatX16#,- writeDoubleArrayAsDoubleX8#,- indexInt8OffAddrAsInt8X16#,- indexInt16OffAddrAsInt16X8#,- indexInt32OffAddrAsInt32X4#,- indexInt64OffAddrAsInt64X2#,- indexInt8OffAddrAsInt8X32#,- indexInt16OffAddrAsInt16X16#,- indexInt32OffAddrAsInt32X8#,- indexInt64OffAddrAsInt64X4#,- indexInt8OffAddrAsInt8X64#,- indexInt16OffAddrAsInt16X32#,- indexInt32OffAddrAsInt32X16#,- indexInt64OffAddrAsInt64X8#,- indexWord8OffAddrAsWord8X16#,- indexWord16OffAddrAsWord16X8#,- indexWord32OffAddrAsWord32X4#,- indexWord64OffAddrAsWord64X2#,- indexWord8OffAddrAsWord8X32#,- indexWord16OffAddrAsWord16X16#,- indexWord32OffAddrAsWord32X8#,- indexWord64OffAddrAsWord64X4#,- indexWord8OffAddrAsWord8X64#,- indexWord16OffAddrAsWord16X32#,- indexWord32OffAddrAsWord32X16#,- indexWord64OffAddrAsWord64X8#,- indexFloatOffAddrAsFloatX4#,- indexDoubleOffAddrAsDoubleX2#,- indexFloatOffAddrAsFloatX8#,- indexDoubleOffAddrAsDoubleX4#,- indexFloatOffAddrAsFloatX16#,- indexDoubleOffAddrAsDoubleX8#,- readInt8OffAddrAsInt8X16#,- readInt16OffAddrAsInt16X8#,- readInt32OffAddrAsInt32X4#,- readInt64OffAddrAsInt64X2#,- readInt8OffAddrAsInt8X32#,- readInt16OffAddrAsInt16X16#,- readInt32OffAddrAsInt32X8#,- readInt64OffAddrAsInt64X4#,- readInt8OffAddrAsInt8X64#,- readInt16OffAddrAsInt16X32#,- readInt32OffAddrAsInt32X16#,- readInt64OffAddrAsInt64X8#,- readWord8OffAddrAsWord8X16#,- readWord16OffAddrAsWord16X8#,- readWord32OffAddrAsWord32X4#,- readWord64OffAddrAsWord64X2#,- readWord8OffAddrAsWord8X32#,- readWord16OffAddrAsWord16X16#,- readWord32OffAddrAsWord32X8#,- readWord64OffAddrAsWord64X4#,- readWord8OffAddrAsWord8X64#,- readWord16OffAddrAsWord16X32#,- readWord32OffAddrAsWord32X16#,- readWord64OffAddrAsWord64X8#,- readFloatOffAddrAsFloatX4#,- readDoubleOffAddrAsDoubleX2#,- readFloatOffAddrAsFloatX8#,- readDoubleOffAddrAsDoubleX4#,- readFloatOffAddrAsFloatX16#,- readDoubleOffAddrAsDoubleX8#,- writeInt8OffAddrAsInt8X16#,- writeInt16OffAddrAsInt16X8#,- writeInt32OffAddrAsInt32X4#,- writeInt64OffAddrAsInt64X2#,- writeInt8OffAddrAsInt8X32#,- writeInt16OffAddrAsInt16X16#,- writeInt32OffAddrAsInt32X8#,- writeInt64OffAddrAsInt64X4#,- writeInt8OffAddrAsInt8X64#,- writeInt16OffAddrAsInt16X32#,- writeInt32OffAddrAsInt32X16#,- writeInt64OffAddrAsInt64X8#,- writeWord8OffAddrAsWord8X16#,- writeWord16OffAddrAsWord16X8#,- writeWord32OffAddrAsWord32X4#,- writeWord64OffAddrAsWord64X2#,- writeWord8OffAddrAsWord8X32#,- writeWord16OffAddrAsWord16X16#,- writeWord32OffAddrAsWord32X8#,- writeWord64OffAddrAsWord64X4#,- writeWord8OffAddrAsWord8X64#,- writeWord16OffAddrAsWord16X32#,- writeWord32OffAddrAsWord32X16#,- writeWord64OffAddrAsWord64X8#,- writeFloatOffAddrAsFloatX4#,- writeDoubleOffAddrAsDoubleX2#,- writeFloatOffAddrAsFloatX8#,- writeDoubleOffAddrAsDoubleX4#,- writeFloatOffAddrAsFloatX16#,- writeDoubleOffAddrAsDoubleX8#,- --- * Prefetch--- |Prefetch operations: Note how every prefetch operation has a name--- with the pattern prefetch*N#, where N is either 0,1,2, or 3.--- --- This suffix number, N, is the \"locality level\" of the prefetch, following the--- convention in GCC and other compilers.--- Higher locality numbers correspond to the memory being loaded in more--- levels of the cpu cache, and being retained after initial use. The naming--- convention follows the naming convention of the prefetch intrinsic found--- in the GCC and Clang C compilers.--- --- On the LLVM backend, prefetch*N# uses the LLVM prefetch intrinsic--- with locality level N. The code generated by LLVM is target architecture--- dependent, but should agree with the GHC NCG on x86 systems.--- --- On the Sparc and PPC native backends, prefetch*N is a No-Op.--- --- On the x86 NCG, N=0 will generate prefetchNTA,--- N=1 generates prefetcht2, N=2 generates prefetcht1, and--- N=3 generates prefetcht0.--- --- For streaming workloads, the prefetch*0 operations are recommended.--- For workloads which do many reads or writes to a memory location in a short period of time,--- prefetch*3 operations are recommended.--- --- For further reading about prefetch and associated systems performance optimization,--- the instruction set and optimization manuals by Intel and other CPU vendors are--- excellent starting place.--- --- --- The \"Intel 64 and IA-32 Architectures Optimization Reference Manual\" is--- especially a helpful read, even if your software is meant for other CPU--- architectures or vendor hardware. The manual can be found at--- http:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/64-ia-32-architectures-optimization-manual.html .--- --- The @prefetch*@ family of operations has the order of operations--- determined by passing around the @State#@ token.--- --- To get a \"pure\" version of these operations, use @inlinePerformIO@ which is quite safe in this context.--- --- It is important to note that while the prefetch operations will never change the--- answer to a pure computation, They CAN change the memory locations resident--- in a CPU cache and that may change the performance and timing characteristics--- of an application. The prefetch operations are marked has_side_effects=True--- to reflect that these operations have side effects with respect to the runtime--- performance characteristics of the resulting code. Additionally, if the prefetchValue--- operations did not have this attribute, GHC does a float out transformation that--- results in a let\/app violation, at least with the current design.--- --- prefetchByteArray3#,- prefetchMutableByteArray3#,- prefetchAddr3#,- prefetchValue3#,- prefetchByteArray2#,- prefetchMutableByteArray2#,- prefetchAddr2#,- prefetchValue2#,- prefetchByteArray1#,- prefetchMutableByteArray1#,- prefetchAddr1#,- prefetchValue1#,- prefetchByteArray0#,- prefetchMutableByteArray0#,- prefetchAddr0#,- prefetchValue0#,-) where--{--has_side_effects = False-out_of_line = False-can_fail = False-commutable = False-code_size = { primOpCodeSizeDefault }-strictness = { \ arity -> mkClosedStrictSig (replicate arity topDmd) topRes }-fixity = Nothing-llvm_only = False---}-import GHC.Types (Coercible)-default ()-data Char#--gtChar# :: Char# -> Char# -> Int#-gtChar# = gtChar#--geChar# :: Char# -> Char# -> Int#-geChar# = geChar#--eqChar# :: Char# -> Char# -> Int#-eqChar# = eqChar#--neChar# :: Char# -> Char# -> Int#-neChar# = neChar#--ltChar# :: Char# -> Char# -> Int#-ltChar# = ltChar#--leChar# :: Char# -> Char# -> Int#-leChar# = leChar#--ord# :: Char# -> Int#-ord# = ord#--data Int#--infixl 6 +#-(+#) :: Int# -> Int# -> Int#-(+#) = (+#)--infixl 6 -#-(-#) :: Int# -> Int# -> Int#-(-#) = (-#)---- |Low word of signed integer multiply.--infixl 7 *#-(*#) :: Int# -> Int# -> Int#-(*#) = (*#)---- |Return non-zero if there is any possibility that the upper word of a--- signed integer multiply might contain useful information. Return--- zero only if you are completely sure that no overflow can occur.--- On a 32-bit platform, the recommended implementation is to do a--- 32 x 32 -> 64 signed multiply, and subtract result[63:32] from--- (result[31] >>signed 31). If this is zero, meaning that the--- upper word is merely a sign extension of the lower one, no--- overflow can occur.--- --- On a 64-bit platform it is not always possible to--- acquire the top 64 bits of the result. Therefore, a recommended--- implementation is to take the absolute value of both operands, and--- return 0 iff bits[63:31] of them are zero, since that means that their--- magnitudes fit within 31 bits, so the magnitude of the product must fit--- into 62 bits.--- --- If in doubt, return non-zero, but do make an effort to create the--- correct answer for small args, since otherwise the performance of--- @(*) :: Integer -> Integer -> Integer@ will be poor.--- --mulIntMayOflo# :: Int# -> Int# -> Int#-mulIntMayOflo# = mulIntMayOflo#---- |Rounds towards zero. The behavior is undefined if the second argument is--- zero.--- --quotInt# :: Int# -> Int# -> Int#-quotInt# = quotInt#---- |Satisfies @(quotInt\# x y) *\# y +\# (remInt\# x y) == x@. The--- behavior is undefined if the second argument is zero.--- --remInt# :: Int# -> Int# -> Int#-remInt# = remInt#---- |Rounds towards zero.--quotRemInt# :: Int# -> Int# -> (# Int#,Int# #)-quotRemInt# = quotRemInt#--andI# :: Int# -> Int# -> Int#-andI# = andI#--orI# :: Int# -> Int# -> Int#-orI# = orI#--xorI# :: Int# -> Int# -> Int#-xorI# = xorI#--notI# :: Int# -> Int#-notI# = notI#--negateInt# :: Int# -> Int#-negateInt# = negateInt#---- |Add signed integers reporting overflow.--- First member of result is the sum truncated to an @Int#@;--- second member is zero if the true sum fits in an @Int#@,--- nonzero if overflow occurred (the sum is either too large--- or too small to fit in an @Int#@).--addIntC# :: Int# -> Int# -> (# Int#,Int# #)-addIntC# = addIntC#---- |Subtract signed integers reporting overflow.--- First member of result is the difference truncated to an @Int#@;--- second member is zero if the true difference fits in an @Int#@,--- nonzero if overflow occurred (the difference is either too large--- or too small to fit in an @Int#@).--subIntC# :: Int# -> Int# -> (# Int#,Int# #)-subIntC# = subIntC#--infix 4 >#-(>#) :: Int# -> Int# -> Int#-(>#) = (>#)--infix 4 >=#-(>=#) :: Int# -> Int# -> Int#-(>=#) = (>=#)--infix 4 ==#-(==#) :: Int# -> Int# -> Int#-(==#) = (==#)--infix 4 /=#-(/=#) :: Int# -> Int# -> Int#-(/=#) = (/=#)--infix 4 <#-(<#) :: Int# -> Int# -> Int#-(<#) = (<#)--infix 4 <=#-(<=#) :: Int# -> Int# -> Int#-(<=#) = (<=#)--chr# :: Int# -> Char#-chr# = chr#--int2Word# :: Int# -> Word#-int2Word# = int2Word#--int2Float# :: Int# -> Float#-int2Float# = int2Float#--int2Double# :: Int# -> Double#-int2Double# = int2Double#--word2Float# :: Word# -> Float#-word2Float# = word2Float#--word2Double# :: Word# -> Double#-word2Double# = word2Double#---- |Shift left. Result undefined if shift amount is not--- in the range 0 to word size - 1 inclusive.--uncheckedIShiftL# :: Int# -> Int# -> Int#-uncheckedIShiftL# = uncheckedIShiftL#---- |Shift right arithmetic. Result undefined if shift amount is not--- in the range 0 to word size - 1 inclusive.--uncheckedIShiftRA# :: Int# -> Int# -> Int#-uncheckedIShiftRA# = uncheckedIShiftRA#---- |Shift right logical. Result undefined if shift amount is not--- in the range 0 to word size - 1 inclusive.--uncheckedIShiftRL# :: Int# -> Int# -> Int#-uncheckedIShiftRL# = uncheckedIShiftRL#--data Word#--plusWord# :: Word# -> Word# -> Word#-plusWord# = plusWord#---- |Add unsigned integers reporting overflow.--- The first element of the pair is the result. The second element is--- the carry flag, which is nonzero on overflow. See also @plusWord2#@.--addWordC# :: Word# -> Word# -> (# Word#,Int# #)-addWordC# = addWordC#---- |Subtract unsigned integers reporting overflow.--- The first element of the pair is the result. The second element is--- the carry flag, which is nonzero on overflow.--subWordC# :: Word# -> Word# -> (# Word#,Int# #)-subWordC# = subWordC#---- |Add unsigned integers, with the high part (carry) in the first--- component of the returned pair and the low part in the second--- component of the pair. See also @addWordC#@.--plusWord2# :: Word# -> Word# -> (# Word#,Word# #)-plusWord2# = plusWord2#--minusWord# :: Word# -> Word# -> Word#-minusWord# = minusWord#--timesWord# :: Word# -> Word# -> Word#-timesWord# = timesWord#--timesWord2# :: Word# -> Word# -> (# Word#,Word# #)-timesWord2# = timesWord2#--quotWord# :: Word# -> Word# -> Word#-quotWord# = quotWord#--remWord# :: Word# -> Word# -> Word#-remWord# = remWord#--quotRemWord# :: Word# -> Word# -> (# Word#,Word# #)-quotRemWord# = quotRemWord#--quotRemWord2# :: Word# -> Word# -> Word# -> (# Word#,Word# #)-quotRemWord2# = quotRemWord2#--and# :: Word# -> Word# -> Word#-and# = and#--or# :: Word# -> Word# -> Word#-or# = or#--xor# :: Word# -> Word# -> Word#-xor# = xor#--not# :: Word# -> Word#-not# = not#---- |Shift left logical. Result undefined if shift amount is not--- in the range 0 to word size - 1 inclusive.--uncheckedShiftL# :: Word# -> Int# -> Word#-uncheckedShiftL# = uncheckedShiftL#---- |Shift right logical. Result undefined if shift amount is not--- in the range 0 to word size - 1 inclusive.--uncheckedShiftRL# :: Word# -> Int# -> Word#-uncheckedShiftRL# = uncheckedShiftRL#--word2Int# :: Word# -> Int#-word2Int# = word2Int#--gtWord# :: Word# -> Word# -> Int#-gtWord# = gtWord#--geWord# :: Word# -> Word# -> Int#-geWord# = geWord#--eqWord# :: Word# -> Word# -> Int#-eqWord# = eqWord#--neWord# :: Word# -> Word# -> Int#-neWord# = neWord#--ltWord# :: Word# -> Word# -> Int#-ltWord# = ltWord#--leWord# :: Word# -> Word# -> Int#-leWord# = leWord#---- |Count the number of set bits in the lower 8 bits of a word.--popCnt8# :: Word# -> Word#-popCnt8# = popCnt8#---- |Count the number of set bits in the lower 16 bits of a word.--popCnt16# :: Word# -> Word#-popCnt16# = popCnt16#---- |Count the number of set bits in the lower 32 bits of a word.--popCnt32# :: Word# -> Word#-popCnt32# = popCnt32#---- |Count the number of set bits in a 64-bit word.--popCnt64# :: Word# -> Word#-popCnt64# = popCnt64#---- |Count the number of set bits in a word.--popCnt# :: Word# -> Word#-popCnt# = popCnt#---- |Deposit bits to lower 8 bits of a word at locations specified by a mask.--pdep8# :: Word# -> Word# -> Word#-pdep8# = pdep8#---- |Deposit bits to lower 16 bits of a word at locations specified by a mask.--pdep16# :: Word# -> Word# -> Word#-pdep16# = pdep16#---- |Deposit bits to lower 32 bits of a word at locations specified by a mask.--pdep32# :: Word# -> Word# -> Word#-pdep32# = pdep32#---- |Deposit bits to a word at locations specified by a mask.--pdep64# :: Word# -> Word# -> Word#-pdep64# = pdep64#---- |Deposit bits to a word at locations specified by a mask.--pdep# :: Word# -> Word# -> Word#-pdep# = pdep#---- |Extract bits from lower 8 bits of a word at locations specified by a mask.--pext8# :: Word# -> Word# -> Word#-pext8# = pext8#---- |Extract bits from lower 16 bits of a word at locations specified by a mask.--pext16# :: Word# -> Word# -> Word#-pext16# = pext16#---- |Extract bits from lower 32 bits of a word at locations specified by a mask.--pext32# :: Word# -> Word# -> Word#-pext32# = pext32#---- |Extract bits from a word at locations specified by a mask.--pext64# :: Word# -> Word# -> Word#-pext64# = pext64#---- |Extract bits from a word at locations specified by a mask.--pext# :: Word# -> Word# -> Word#-pext# = pext#---- |Count leading zeros in the lower 8 bits of a word.--clz8# :: Word# -> Word#-clz8# = clz8#---- |Count leading zeros in the lower 16 bits of a word.--clz16# :: Word# -> Word#-clz16# = clz16#---- |Count leading zeros in the lower 32 bits of a word.--clz32# :: Word# -> Word#-clz32# = clz32#---- |Count leading zeros in a 64-bit word.--clz64# :: Word# -> Word#-clz64# = clz64#---- |Count leading zeros in a word.--clz# :: Word# -> Word#-clz# = clz#---- |Count trailing zeros in the lower 8 bits of a word.--ctz8# :: Word# -> Word#-ctz8# = ctz8#---- |Count trailing zeros in the lower 16 bits of a word.--ctz16# :: Word# -> Word#-ctz16# = ctz16#---- |Count trailing zeros in the lower 32 bits of a word.--ctz32# :: Word# -> Word#-ctz32# = ctz32#---- |Count trailing zeros in a 64-bit word.--ctz64# :: Word# -> Word#-ctz64# = ctz64#---- |Count trailing zeros in a word.--ctz# :: Word# -> Word#-ctz# = ctz#---- |Swap bytes in the lower 16 bits of a word. The higher bytes are undefined. --byteSwap16# :: Word# -> Word#-byteSwap16# = byteSwap16#---- |Swap bytes in the lower 32 bits of a word. The higher bytes are undefined. --byteSwap32# :: Word# -> Word#-byteSwap32# = byteSwap32#---- |Swap bytes in a 64 bits of a word.--byteSwap64# :: Word# -> Word#-byteSwap64# = byteSwap64#---- |Swap bytes in a word.--byteSwap# :: Word# -> Word#-byteSwap# = byteSwap#--narrow8Int# :: Int# -> Int#-narrow8Int# = narrow8Int#--narrow16Int# :: Int# -> Int#-narrow16Int# = narrow16Int#--narrow32Int# :: Int# -> Int#-narrow32Int# = narrow32Int#--narrow8Word# :: Word# -> Word#-narrow8Word# = narrow8Word#--narrow16Word# :: Word# -> Word#-narrow16Word# = narrow16Word#--narrow32Word# :: Word# -> Word#-narrow32Word# = narrow32Word#--data Double#--infix 4 >##-(>##) :: Double# -> Double# -> Int#-(>##) = (>##)--infix 4 >=##-(>=##) :: Double# -> Double# -> Int#-(>=##) = (>=##)--infix 4 ==##-(==##) :: Double# -> Double# -> Int#-(==##) = (==##)--infix 4 /=##-(/=##) :: Double# -> Double# -> Int#-(/=##) = (/=##)--infix 4 <##-(<##) :: Double# -> Double# -> Int#-(<##) = (<##)--infix 4 <=##-(<=##) :: Double# -> Double# -> Int#-(<=##) = (<=##)--infixl 6 +##-(+##) :: Double# -> Double# -> Double#-(+##) = (+##)--infixl 6 -##-(-##) :: Double# -> Double# -> Double#-(-##) = (-##)--infixl 7 *##-(*##) :: Double# -> Double# -> Double#-(*##) = (*##)--infixl 7 /##-(/##) :: Double# -> Double# -> Double#-(/##) = (/##)--negateDouble# :: Double# -> Double#-negateDouble# = negateDouble#--fabsDouble# :: Double# -> Double#-fabsDouble# = fabsDouble#---- |Truncates a @Double#@ value to the nearest @Int#@.--- Results are undefined if the truncation if truncation yields--- a value outside the range of @Int#@.--double2Int# :: Double# -> Int#-double2Int# = double2Int#--double2Float# :: Double# -> Float#-double2Float# = double2Float#--expDouble# :: Double# -> Double#-expDouble# = expDouble#--logDouble# :: Double# -> Double#-logDouble# = logDouble#--sqrtDouble# :: Double# -> Double#-sqrtDouble# = sqrtDouble#--sinDouble# :: Double# -> Double#-sinDouble# = sinDouble#--cosDouble# :: Double# -> Double#-cosDouble# = cosDouble#--tanDouble# :: Double# -> Double#-tanDouble# = tanDouble#--asinDouble# :: Double# -> Double#-asinDouble# = asinDouble#--acosDouble# :: Double# -> Double#-acosDouble# = acosDouble#--atanDouble# :: Double# -> Double#-atanDouble# = atanDouble#--sinhDouble# :: Double# -> Double#-sinhDouble# = sinhDouble#--coshDouble# :: Double# -> Double#-coshDouble# = coshDouble#--tanhDouble# :: Double# -> Double#-tanhDouble# = tanhDouble#---- |Exponentiation.--(**##) :: Double# -> Double# -> Double#-(**##) = (**##)---- |Convert to integer.--- First component of the result is -1 or 1, indicating the sign of the--- mantissa. The next two are the high and low 32 bits of the mantissa--- respectively, and the last is the exponent.--decodeDouble_2Int# :: Double# -> (# Int#,Word#,Word#,Int# #)-decodeDouble_2Int# = decodeDouble_2Int#---- |Decode @Double\#@ into mantissa and base-2 exponent.--decodeDouble_Int64# :: Double# -> (# Int#,Int# #)-decodeDouble_Int64# = decodeDouble_Int64#--data Float#--gtFloat# :: Float# -> Float# -> Int#-gtFloat# = gtFloat#--geFloat# :: Float# -> Float# -> Int#-geFloat# = geFloat#--eqFloat# :: Float# -> Float# -> Int#-eqFloat# = eqFloat#--neFloat# :: Float# -> Float# -> Int#-neFloat# = neFloat#--ltFloat# :: Float# -> Float# -> Int#-ltFloat# = ltFloat#--leFloat# :: Float# -> Float# -> Int#-leFloat# = leFloat#--plusFloat# :: Float# -> Float# -> Float#-plusFloat# = plusFloat#--minusFloat# :: Float# -> Float# -> Float#-minusFloat# = minusFloat#--timesFloat# :: Float# -> Float# -> Float#-timesFloat# = timesFloat#--divideFloat# :: Float# -> Float# -> Float#-divideFloat# = divideFloat#--negateFloat# :: Float# -> Float#-negateFloat# = negateFloat#--fabsFloat# :: Float# -> Float#-fabsFloat# = fabsFloat#---- |Truncates a @Float#@ value to the nearest @Int#@.--- Results are undefined if the truncation if truncation yields--- a value outside the range of @Int#@.--float2Int# :: Float# -> Int#-float2Int# = float2Int#--expFloat# :: Float# -> Float#-expFloat# = expFloat#--logFloat# :: Float# -> Float#-logFloat# = logFloat#--sqrtFloat# :: Float# -> Float#-sqrtFloat# = sqrtFloat#--sinFloat# :: Float# -> Float#-sinFloat# = sinFloat#--cosFloat# :: Float# -> Float#-cosFloat# = cosFloat#--tanFloat# :: Float# -> Float#-tanFloat# = tanFloat#--asinFloat# :: Float# -> Float#-asinFloat# = asinFloat#--acosFloat# :: Float# -> Float#-acosFloat# = acosFloat#--atanFloat# :: Float# -> Float#-atanFloat# = atanFloat#--sinhFloat# :: Float# -> Float#-sinhFloat# = sinhFloat#--coshFloat# :: Float# -> Float#-coshFloat# = coshFloat#--tanhFloat# :: Float# -> Float#-tanhFloat# = tanhFloat#--powerFloat# :: Float# -> Float# -> Float#-powerFloat# = powerFloat#--float2Double# :: Float# -> Double#-float2Double# = float2Double#---- |Convert to integers.--- First @Int\#@ in result is the mantissa; second is the exponent.--decodeFloat_Int# :: Float# -> (# Int#,Int# #)-decodeFloat_Int# = decodeFloat_Int#--data Array# a--data MutableArray# s a---- |Create a new mutable array with the specified number of elements,--- in the specified state thread,--- with each element containing the specified initial value.--newArray# :: Int# -> a -> State# s -> (# State# s,MutableArray# s a #)-newArray# = newArray#--sameMutableArray# :: MutableArray# s a -> MutableArray# s a -> Int#-sameMutableArray# = sameMutableArray#---- |Read from specified index of mutable array. Result is not yet evaluated.--readArray# :: MutableArray# s a -> Int# -> State# s -> (# State# s,a #)-readArray# = readArray#---- |Write to specified index of mutable array.--writeArray# :: MutableArray# s a -> Int# -> a -> State# s -> State# s-writeArray# = writeArray#---- |Return the number of elements in the array.--sizeofArray# :: Array# a -> Int#-sizeofArray# = sizeofArray#---- |Return the number of elements in the array.--sizeofMutableArray# :: MutableArray# s a -> Int#-sizeofMutableArray# = sizeofMutableArray#---- |Read from the specified index of an immutable array. The result is packaged--- into an unboxed unary tuple; the result itself is not yet--- evaluated. Pattern matching on the tuple forces the indexing of the--- array to happen but does not evaluate the element itself. Evaluating--- the thunk prevents additional thunks from building up on the--- heap. Avoiding these thunks, in turn, reduces references to the--- argument array, allowing it to be garbage collected more promptly.--indexArray# :: Array# a -> Int# -> (# a #)-indexArray# = indexArray#---- |Make a mutable array immutable, without copying.--unsafeFreezeArray# :: MutableArray# s a -> State# s -> (# State# s,Array# a #)-unsafeFreezeArray# = unsafeFreezeArray#---- |Make an immutable array mutable, without copying.--unsafeThawArray# :: Array# a -> State# s -> (# State# s,MutableArray# s a #)-unsafeThawArray# = unsafeThawArray#---- |Given a source array, an offset into the source array, a--- destination array, an offset into the destination array, and a--- number of elements to copy, copy the elements from the source array--- to the destination array. Both arrays must fully contain the--- specified ranges, but this is not checked. The two arrays must not--- be the same array in different states, but this is not checked--- either.--copyArray# :: Array# a -> Int# -> MutableArray# s a -> Int# -> Int# -> State# s -> State# s-copyArray# = copyArray#---- |Given a source array, an offset into the source array, a--- destination array, an offset into the destination array, and a--- number of elements to copy, copy the elements from the source array--- to the destination array. Both arrays must fully contain the--- specified ranges, but this is not checked. In the case where--- the source and destination are the same array the source and--- destination regions may overlap.--copyMutableArray# :: MutableArray# s a -> Int# -> MutableArray# s a -> Int# -> Int# -> State# s -> State# s-copyMutableArray# = copyMutableArray#---- |Given a source array, an offset into the source array, and a number--- of elements to copy, create a new array with the elements from the--- source array. The provided array must fully contain the specified--- range, but this is not checked.--cloneArray# :: Array# a -> Int# -> Int# -> Array# a-cloneArray# = cloneArray#---- |Given a source array, an offset into the source array, and a number--- of elements to copy, create a new array with the elements from the--- source array. The provided array must fully contain the specified--- range, but this is not checked.--cloneMutableArray# :: MutableArray# s a -> Int# -> Int# -> State# s -> (# State# s,MutableArray# s a #)-cloneMutableArray# = cloneMutableArray#---- |Given a source array, an offset into the source array, and a number--- of elements to copy, create a new array with the elements from the--- source array. The provided array must fully contain the specified--- range, but this is not checked.--freezeArray# :: MutableArray# s a -> Int# -> Int# -> State# s -> (# State# s,Array# a #)-freezeArray# = freezeArray#---- |Given a source array, an offset into the source array, and a number--- of elements to copy, create a new array with the elements from the--- source array. The provided array must fully contain the specified--- range, but this is not checked.--thawArray# :: Array# a -> Int# -> Int# -> State# s -> (# State# s,MutableArray# s a #)-thawArray# = thawArray#---- |Unsafe, machine-level atomic compare and swap on an element within an Array.--casArray# :: MutableArray# s a -> Int# -> a -> a -> State# s -> (# State# s,Int#,a #)-casArray# = casArray#--data SmallArray# a--data SmallMutableArray# s a---- |Create a new mutable array with the specified number of elements,--- in the specified state thread,--- with each element containing the specified initial value.--newSmallArray# :: Int# -> a -> State# s -> (# State# s,SmallMutableArray# s a #)-newSmallArray# = newSmallArray#--sameSmallMutableArray# :: SmallMutableArray# s a -> SmallMutableArray# s a -> Int#-sameSmallMutableArray# = sameSmallMutableArray#---- |Read from specified index of mutable array. Result is not yet evaluated.--readSmallArray# :: SmallMutableArray# s a -> Int# -> State# s -> (# State# s,a #)-readSmallArray# = readSmallArray#---- |Write to specified index of mutable array.--writeSmallArray# :: SmallMutableArray# s a -> Int# -> a -> State# s -> State# s-writeSmallArray# = writeSmallArray#---- |Return the number of elements in the array.--sizeofSmallArray# :: SmallArray# a -> Int#-sizeofSmallArray# = sizeofSmallArray#---- |Return the number of elements in the array.--sizeofSmallMutableArray# :: SmallMutableArray# s a -> Int#-sizeofSmallMutableArray# = sizeofSmallMutableArray#---- |Read from specified index of immutable array. Result is packaged into--- an unboxed singleton; the result itself is not yet evaluated.--indexSmallArray# :: SmallArray# a -> Int# -> (# a #)-indexSmallArray# = indexSmallArray#---- |Make a mutable array immutable, without copying.--unsafeFreezeSmallArray# :: SmallMutableArray# s a -> State# s -> (# State# s,SmallArray# a #)-unsafeFreezeSmallArray# = unsafeFreezeSmallArray#---- |Make an immutable array mutable, without copying.--unsafeThawSmallArray# :: SmallArray# a -> State# s -> (# State# s,SmallMutableArray# s a #)-unsafeThawSmallArray# = unsafeThawSmallArray#---- |Given a source array, an offset into the source array, a--- destination array, an offset into the destination array, and a--- number of elements to copy, copy the elements from the source array--- to the destination array. Both arrays must fully contain the--- specified ranges, but this is not checked. The two arrays must not--- be the same array in different states, but this is not checked--- either.--copySmallArray# :: SmallArray# a -> Int# -> SmallMutableArray# s a -> Int# -> Int# -> State# s -> State# s-copySmallArray# = copySmallArray#---- |Given a source array, an offset into the source array, a--- destination array, an offset into the destination array, and a--- number of elements to copy, copy the elements from the source array--- to the destination array. The source and destination arrays can--- refer to the same array. Both arrays must fully contain the--- specified ranges, but this is not checked.--- The regions are allowed to overlap, although this is only possible when the same --- array is provided as both the source and the destination. --copySmallMutableArray# :: SmallMutableArray# s a -> Int# -> SmallMutableArray# s a -> Int# -> Int# -> State# s -> State# s-copySmallMutableArray# = copySmallMutableArray#---- |Given a source array, an offset into the source array, and a number--- of elements to copy, create a new array with the elements from the--- source array. The provided array must fully contain the specified--- range, but this is not checked.--cloneSmallArray# :: SmallArray# a -> Int# -> Int# -> SmallArray# a-cloneSmallArray# = cloneSmallArray#---- |Given a source array, an offset into the source array, and a number--- of elements to copy, create a new array with the elements from the--- source array. The provided array must fully contain the specified--- range, but this is not checked.--cloneSmallMutableArray# :: SmallMutableArray# s a -> Int# -> Int# -> State# s -> (# State# s,SmallMutableArray# s a #)-cloneSmallMutableArray# = cloneSmallMutableArray#---- |Given a source array, an offset into the source array, and a number--- of elements to copy, create a new array with the elements from the--- source array. The provided array must fully contain the specified--- range, but this is not checked.--freezeSmallArray# :: SmallMutableArray# s a -> Int# -> Int# -> State# s -> (# State# s,SmallArray# a #)-freezeSmallArray# = freezeSmallArray#---- |Given a source array, an offset into the source array, and a number--- of elements to copy, create a new array with the elements from the--- source array. The provided array must fully contain the specified--- range, but this is not checked.--thawSmallArray# :: SmallArray# a -> Int# -> Int# -> State# s -> (# State# s,SmallMutableArray# s a #)-thawSmallArray# = thawSmallArray#---- |Unsafe, machine-level atomic compare and swap on an element within an array.--casSmallArray# :: SmallMutableArray# s a -> Int# -> a -> a -> State# s -> (# State# s,Int#,a #)-casSmallArray# = casSmallArray#--data ByteArray#--data MutableByteArray# s---- |Create a new mutable byte array of specified size (in bytes), in--- the specified state thread.--newByteArray# :: Int# -> State# s -> (# State# s,MutableByteArray# s #)-newByteArray# = newByteArray#---- |Create a mutable byte array that the GC guarantees not to move.--newPinnedByteArray# :: Int# -> State# s -> (# State# s,MutableByteArray# s #)-newPinnedByteArray# = newPinnedByteArray#---- |Create a mutable byte array, aligned by the specified amount, that the GC guarantees not to move.--newAlignedPinnedByteArray# :: Int# -> Int# -> State# s -> (# State# s,MutableByteArray# s #)-newAlignedPinnedByteArray# = newAlignedPinnedByteArray#---- |Determine whether a @MutableByteArray\#@ is guaranteed not to move--- during GC.--isMutableByteArrayPinned# :: MutableByteArray# s -> Int#-isMutableByteArrayPinned# = isMutableByteArrayPinned#---- |Determine whether a @ByteArray\#@ is guaranteed not to move during GC.--isByteArrayPinned# :: ByteArray# -> Int#-isByteArrayPinned# = isByteArrayPinned#---- |Intended for use with pinned arrays; otherwise very unsafe!--byteArrayContents# :: ByteArray# -> Addr#-byteArrayContents# = byteArrayContents#--sameMutableByteArray# :: MutableByteArray# s -> MutableByteArray# s -> Int#-sameMutableByteArray# = sameMutableByteArray#---- |Shrink mutable byte array to new specified size (in bytes), in--- the specified state thread. The new size argument must be less than or--- equal to the current size as reported by @sizeofMutableArray\#@.--shrinkMutableByteArray# :: MutableByteArray# s -> Int# -> State# s -> State# s-shrinkMutableByteArray# = shrinkMutableByteArray#---- |Resize (unpinned) mutable byte array to new specified size (in bytes).--- The returned @MutableByteArray\#@ is either the original--- @MutableByteArray\#@ resized in-place or, if not possible, a newly--- allocated (unpinned) @MutableByteArray\#@ (with the original content--- copied over).--- --- To avoid undefined behaviour, the original @MutableByteArray\#@ shall--- not be accessed anymore after a @resizeMutableByteArray\#@ has been--- performed. Moreover, no reference to the old one should be kept in order--- to allow garbage collection of the original @MutableByteArray\#@ in--- case a new @MutableByteArray\#@ had to be allocated.--resizeMutableByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,MutableByteArray# s #)-resizeMutableByteArray# = resizeMutableByteArray#---- |Make a mutable byte array immutable, without copying.--unsafeFreezeByteArray# :: MutableByteArray# s -> State# s -> (# State# s,ByteArray# #)-unsafeFreezeByteArray# = unsafeFreezeByteArray#---- |Return the size of the array in bytes.--sizeofByteArray# :: ByteArray# -> Int#-sizeofByteArray# = sizeofByteArray#---- |Return the size of the array in bytes. Note that this is deprecated as it is--- unsafe in the presence of concurrent resize operations on the same byte--- array. See @getSizeofMutableByteArray@.--sizeofMutableByteArray# :: MutableByteArray# s -> Int#-sizeofMutableByteArray# = sizeofMutableByteArray#---- |Return the number of elements in the array.--getSizeofMutableByteArray# :: MutableByteArray# s -> State# s -> (# State# s,Int# #)-getSizeofMutableByteArray# = getSizeofMutableByteArray#---- |Read 8-bit character; offset in bytes.--indexCharArray# :: ByteArray# -> Int# -> Char#-indexCharArray# = indexCharArray#---- |Read 31-bit character; offset in 4-byte words.--indexWideCharArray# :: ByteArray# -> Int# -> Char#-indexWideCharArray# = indexWideCharArray#--indexIntArray# :: ByteArray# -> Int# -> Int#-indexIntArray# = indexIntArray#--indexWordArray# :: ByteArray# -> Int# -> Word#-indexWordArray# = indexWordArray#--indexAddrArray# :: ByteArray# -> Int# -> Addr#-indexAddrArray# = indexAddrArray#--indexFloatArray# :: ByteArray# -> Int# -> Float#-indexFloatArray# = indexFloatArray#--indexDoubleArray# :: ByteArray# -> Int# -> Double#-indexDoubleArray# = indexDoubleArray#--indexStablePtrArray# :: ByteArray# -> Int# -> StablePtr# a-indexStablePtrArray# = indexStablePtrArray#---- |Read 8-bit integer; offset in bytes.--indexInt8Array# :: ByteArray# -> Int# -> Int#-indexInt8Array# = indexInt8Array#---- |Read 16-bit integer; offset in 16-bit words.--indexInt16Array# :: ByteArray# -> Int# -> Int#-indexInt16Array# = indexInt16Array#---- |Read 32-bit integer; offset in 32-bit words.--indexInt32Array# :: ByteArray# -> Int# -> Int#-indexInt32Array# = indexInt32Array#---- |Read 64-bit integer; offset in 64-bit words.--indexInt64Array# :: ByteArray# -> Int# -> Int#-indexInt64Array# = indexInt64Array#---- |Read 8-bit word; offset in bytes.--indexWord8Array# :: ByteArray# -> Int# -> Word#-indexWord8Array# = indexWord8Array#---- |Read 16-bit word; offset in 16-bit words.--indexWord16Array# :: ByteArray# -> Int# -> Word#-indexWord16Array# = indexWord16Array#---- |Read 32-bit word; offset in 32-bit words.--indexWord32Array# :: ByteArray# -> Int# -> Word#-indexWord32Array# = indexWord32Array#---- |Read 64-bit word; offset in 64-bit words.--indexWord64Array# :: ByteArray# -> Int# -> Word#-indexWord64Array# = indexWord64Array#---- |Read 8-bit character; offset in bytes.--indexWord8ArrayAsChar# :: ByteArray# -> Int# -> Char#-indexWord8ArrayAsChar# = indexWord8ArrayAsChar#---- |Read 31-bit character; offset in bytes.--indexWord8ArrayAsWideChar# :: ByteArray# -> Int# -> Char#-indexWord8ArrayAsWideChar# = indexWord8ArrayAsWideChar#---- |Read address; offset in bytes.--indexWord8ArrayAsAddr# :: ByteArray# -> Int# -> Addr#-indexWord8ArrayAsAddr# = indexWord8ArrayAsAddr#---- |Read float; offset in bytes.--indexWord8ArrayAsFloat# :: ByteArray# -> Int# -> Float#-indexWord8ArrayAsFloat# = indexWord8ArrayAsFloat#---- |Read double; offset in bytes.--indexWord8ArrayAsDouble# :: ByteArray# -> Int# -> Double#-indexWord8ArrayAsDouble# = indexWord8ArrayAsDouble#---- |Read stable pointer; offset in bytes.--indexWord8ArrayAsStablePtr# :: ByteArray# -> Int# -> StablePtr# a-indexWord8ArrayAsStablePtr# = indexWord8ArrayAsStablePtr#---- |Read 16-bit int; offset in bytes.--indexWord8ArrayAsInt16# :: ByteArray# -> Int# -> Int#-indexWord8ArrayAsInt16# = indexWord8ArrayAsInt16#---- |Read 32-bit int; offset in bytes.--indexWord8ArrayAsInt32# :: ByteArray# -> Int# -> Int#-indexWord8ArrayAsInt32# = indexWord8ArrayAsInt32#---- |Read 64-bit int; offset in bytes.--indexWord8ArrayAsInt64# :: ByteArray# -> Int# -> Int#-indexWord8ArrayAsInt64# = indexWord8ArrayAsInt64#---- |Read int; offset in bytes.--indexWord8ArrayAsInt# :: ByteArray# -> Int# -> Int#-indexWord8ArrayAsInt# = indexWord8ArrayAsInt#---- |Read 16-bit word; offset in bytes.--indexWord8ArrayAsWord16# :: ByteArray# -> Int# -> Word#-indexWord8ArrayAsWord16# = indexWord8ArrayAsWord16#---- |Read 32-bit word; offset in bytes.--indexWord8ArrayAsWord32# :: ByteArray# -> Int# -> Word#-indexWord8ArrayAsWord32# = indexWord8ArrayAsWord32#---- |Read 64-bit word; offset in bytes.--indexWord8ArrayAsWord64# :: ByteArray# -> Int# -> Word#-indexWord8ArrayAsWord64# = indexWord8ArrayAsWord64#---- |Read word; offset in bytes.--indexWord8ArrayAsWord# :: ByteArray# -> Int# -> Word#-indexWord8ArrayAsWord# = indexWord8ArrayAsWord#---- |Read 8-bit character; offset in bytes.--readCharArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Char# #)-readCharArray# = readCharArray#---- |Read 31-bit character; offset in 4-byte words.--readWideCharArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Char# #)-readWideCharArray# = readWideCharArray#---- |Read integer; offset in words.--readIntArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-readIntArray# = readIntArray#---- |Read word; offset in words.--readWordArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)-readWordArray# = readWordArray#--readAddrArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Addr# #)-readAddrArray# = readAddrArray#--readFloatArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Float# #)-readFloatArray# = readFloatArray#--readDoubleArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Double# #)-readDoubleArray# = readDoubleArray#--readStablePtrArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,StablePtr# a #)-readStablePtrArray# = readStablePtrArray#--readInt8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-readInt8Array# = readInt8Array#--readInt16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-readInt16Array# = readInt16Array#--readInt32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-readInt32Array# = readInt32Array#--readInt64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-readInt64Array# = readInt64Array#--readWord8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)-readWord8Array# = readWord8Array#--readWord16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)-readWord16Array# = readWord16Array#--readWord32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)-readWord32Array# = readWord32Array#--readWord64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)-readWord64Array# = readWord64Array#--readWord8ArrayAsChar# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Char# #)-readWord8ArrayAsChar# = readWord8ArrayAsChar#--readWord8ArrayAsWideChar# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Char# #)-readWord8ArrayAsWideChar# = readWord8ArrayAsWideChar#--readWord8ArrayAsAddr# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Addr# #)-readWord8ArrayAsAddr# = readWord8ArrayAsAddr#--readWord8ArrayAsFloat# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Float# #)-readWord8ArrayAsFloat# = readWord8ArrayAsFloat#--readWord8ArrayAsDouble# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Double# #)-readWord8ArrayAsDouble# = readWord8ArrayAsDouble#--readWord8ArrayAsStablePtr# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,StablePtr# a #)-readWord8ArrayAsStablePtr# = readWord8ArrayAsStablePtr#--readWord8ArrayAsInt16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-readWord8ArrayAsInt16# = readWord8ArrayAsInt16#--readWord8ArrayAsInt32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-readWord8ArrayAsInt32# = readWord8ArrayAsInt32#--readWord8ArrayAsInt64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-readWord8ArrayAsInt64# = readWord8ArrayAsInt64#--readWord8ArrayAsInt# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-readWord8ArrayAsInt# = readWord8ArrayAsInt#--readWord8ArrayAsWord16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)-readWord8ArrayAsWord16# = readWord8ArrayAsWord16#--readWord8ArrayAsWord32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)-readWord8ArrayAsWord32# = readWord8ArrayAsWord32#--readWord8ArrayAsWord64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)-readWord8ArrayAsWord64# = readWord8ArrayAsWord64#--readWord8ArrayAsWord# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)-readWord8ArrayAsWord# = readWord8ArrayAsWord#---- |Write 8-bit character; offset in bytes.--writeCharArray# :: MutableByteArray# s -> Int# -> Char# -> State# s -> State# s-writeCharArray# = writeCharArray#---- |Write 31-bit character; offset in 4-byte words.--writeWideCharArray# :: MutableByteArray# s -> Int# -> Char# -> State# s -> State# s-writeWideCharArray# = writeWideCharArray#--writeIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-writeIntArray# = writeIntArray#--writeWordArray# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s-writeWordArray# = writeWordArray#--writeAddrArray# :: MutableByteArray# s -> Int# -> Addr# -> State# s -> State# s-writeAddrArray# = writeAddrArray#--writeFloatArray# :: MutableByteArray# s -> Int# -> Float# -> State# s -> State# s-writeFloatArray# = writeFloatArray#--writeDoubleArray# :: MutableByteArray# s -> Int# -> Double# -> State# s -> State# s-writeDoubleArray# = writeDoubleArray#--writeStablePtrArray# :: MutableByteArray# s -> Int# -> StablePtr# a -> State# s -> State# s-writeStablePtrArray# = writeStablePtrArray#--writeInt8Array# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-writeInt8Array# = writeInt8Array#--writeInt16Array# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-writeInt16Array# = writeInt16Array#--writeInt32Array# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-writeInt32Array# = writeInt32Array#--writeInt64Array# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-writeInt64Array# = writeInt64Array#--writeWord8Array# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s-writeWord8Array# = writeWord8Array#--writeWord16Array# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s-writeWord16Array# = writeWord16Array#--writeWord32Array# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s-writeWord32Array# = writeWord32Array#--writeWord64Array# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s-writeWord64Array# = writeWord64Array#--writeWord8ArrayAsChar# :: MutableByteArray# s -> Int# -> Char# -> State# s -> State# s-writeWord8ArrayAsChar# = writeWord8ArrayAsChar#--writeWord8ArrayAsWideChar# :: MutableByteArray# s -> Int# -> Char# -> State# s -> State# s-writeWord8ArrayAsWideChar# = writeWord8ArrayAsWideChar#--writeWord8ArrayAsAddr# :: MutableByteArray# s -> Int# -> Addr# -> State# s -> State# s-writeWord8ArrayAsAddr# = writeWord8ArrayAsAddr#--writeWord8ArrayAsFloat# :: MutableByteArray# s -> Int# -> Float# -> State# s -> State# s-writeWord8ArrayAsFloat# = writeWord8ArrayAsFloat#--writeWord8ArrayAsDouble# :: MutableByteArray# s -> Int# -> Double# -> State# s -> State# s-writeWord8ArrayAsDouble# = writeWord8ArrayAsDouble#--writeWord8ArrayAsStablePtr# :: MutableByteArray# s -> Int# -> StablePtr# a -> State# s -> State# s-writeWord8ArrayAsStablePtr# = writeWord8ArrayAsStablePtr#--writeWord8ArrayAsInt16# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-writeWord8ArrayAsInt16# = writeWord8ArrayAsInt16#--writeWord8ArrayAsInt32# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-writeWord8ArrayAsInt32# = writeWord8ArrayAsInt32#--writeWord8ArrayAsInt64# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-writeWord8ArrayAsInt64# = writeWord8ArrayAsInt64#--writeWord8ArrayAsInt# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-writeWord8ArrayAsInt# = writeWord8ArrayAsInt#--writeWord8ArrayAsWord16# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s-writeWord8ArrayAsWord16# = writeWord8ArrayAsWord16#--writeWord8ArrayAsWord32# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s-writeWord8ArrayAsWord32# = writeWord8ArrayAsWord32#--writeWord8ArrayAsWord64# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s-writeWord8ArrayAsWord64# = writeWord8ArrayAsWord64#--writeWord8ArrayAsWord# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s-writeWord8ArrayAsWord# = writeWord8ArrayAsWord#---- |@compareByteArrays# src1 src1_ofs src2 src2_ofs n@ compares--- @n@ bytes starting at offset @src1_ofs@ in the first--- @ByteArray#@ @src1@ to the range of @n@ bytes--- (i.e. same length) starting at offset @src2_ofs@ of the second--- @ByteArray#@ @src2@. Both arrays must fully contain the--- specified ranges, but this is not checked. Returns an @Int#@--- less than, equal to, or greater than zero if the range is found,--- respectively, to be byte-wise lexicographically less than, to--- match, or be greater than the second range.--compareByteArrays# :: ByteArray# -> Int# -> ByteArray# -> Int# -> Int# -> Int#-compareByteArrays# = compareByteArrays#---- |@copyByteArray# src src_ofs dst dst_ofs n@ copies the range--- starting at offset @src_ofs@ of length @n@ from the--- @ByteArray#@ @src@ to the @MutableByteArray#@ @dst@--- starting at offset @dst_ofs@. Both arrays must fully contain--- the specified ranges, but this is not checked. The two arrays must--- not be the same array in different states, but this is not checked--- either.--copyByteArray# :: ByteArray# -> Int# -> MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-copyByteArray# = copyByteArray#---- |Copy a range of the first MutableByteArray# to the specified region in the second MutableByteArray#.--- Both arrays must fully contain the specified ranges, but this is not checked. The regions are--- allowed to overlap, although this is only possible when the same array is provided--- as both the source and the destination.--copyMutableByteArray# :: MutableByteArray# s -> Int# -> MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-copyMutableByteArray# = copyMutableByteArray#---- |Copy a range of the ByteArray# to the memory range starting at the Addr#.--- The ByteArray# and the memory region at Addr# must fully contain the--- specified ranges, but this is not checked. The Addr# must not point into the--- ByteArray# (e.g. if the ByteArray# were pinned), but this is not checked--- either.--copyByteArrayToAddr# :: ByteArray# -> Int# -> Addr# -> Int# -> State# s -> State# s-copyByteArrayToAddr# = copyByteArrayToAddr#---- |Copy a range of the MutableByteArray# to the memory range starting at the--- Addr#. The MutableByteArray# and the memory region at Addr# must fully--- contain the specified ranges, but this is not checked. The Addr# must not--- point into the MutableByteArray# (e.g. if the MutableByteArray# were--- pinned), but this is not checked either.--copyMutableByteArrayToAddr# :: MutableByteArray# s -> Int# -> Addr# -> Int# -> State# s -> State# s-copyMutableByteArrayToAddr# = copyMutableByteArrayToAddr#---- |Copy a memory range starting at the Addr# to the specified range in the--- MutableByteArray#. The memory region at Addr# and the ByteArray# must fully--- contain the specified ranges, but this is not checked. The Addr# must not--- point into the MutableByteArray# (e.g. if the MutableByteArray# were pinned),--- but this is not checked either.--copyAddrToByteArray# :: Addr# -> MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-copyAddrToByteArray# = copyAddrToByteArray#---- |@setByteArray# ba off len c@ sets the byte range @[off, off+len]@ of--- the @MutableByteArray#@ to the byte @c@.--setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Int# -> State# s -> State# s-setByteArray# = setByteArray#---- |Given an array and an offset in Int units, read an element. The--- index is assumed to be in bounds. Implies a full memory barrier.--atomicReadIntArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)-atomicReadIntArray# = atomicReadIntArray#---- |Given an array and an offset in Int units, write an element. The--- index is assumed to be in bounds. Implies a full memory barrier.--atomicWriteIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s-atomicWriteIntArray# = atomicWriteIntArray#---- |Given an array, an offset in Int units, the expected old value, and--- the new value, perform an atomic compare and swap i.e. write the new--- value if the current value matches the provided old value. Returns--- the value of the element before the operation. Implies a full memory--- barrier.--casIntArray# :: MutableByteArray# s -> Int# -> Int# -> Int# -> State# s -> (# State# s,Int# #)-casIntArray# = casIntArray#---- |Given an array, and offset in Int units, and a value to add,--- atomically add the value to the element. Returns the value of the--- element before the operation. Implies a full memory barrier.--fetchAddIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)-fetchAddIntArray# = fetchAddIntArray#---- |Given an array, and offset in Int units, and a value to subtract,--- atomically substract the value to the element. Returns the value of--- the element before the operation. Implies a full memory barrier.--fetchSubIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)-fetchSubIntArray# = fetchSubIntArray#---- |Given an array, and offset in Int units, and a value to AND,--- atomically AND the value to the element. Returns the value of the--- element before the operation. Implies a full memory barrier.--fetchAndIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)-fetchAndIntArray# = fetchAndIntArray#---- |Given an array, and offset in Int units, and a value to NAND,--- atomically NAND the value to the element. Returns the value of the--- element before the operation. Implies a full memory barrier.--fetchNandIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)-fetchNandIntArray# = fetchNandIntArray#---- |Given an array, and offset in Int units, and a value to OR,--- atomically OR the value to the element. Returns the value of the--- element before the operation. Implies a full memory barrier.--fetchOrIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)-fetchOrIntArray# = fetchOrIntArray#---- |Given an array, and offset in Int units, and a value to XOR,--- atomically XOR the value to the element. Returns the value of the--- element before the operation. Implies a full memory barrier.--fetchXorIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)-fetchXorIntArray# = fetchXorIntArray#--data ArrayArray#--data MutableArrayArray# s---- |Create a new mutable array of arrays with the specified number of elements,--- in the specified state thread, with each element recursively referring to the--- newly created array.--newArrayArray# :: Int# -> State# s -> (# State# s,MutableArrayArray# s #)-newArrayArray# = newArrayArray#--sameMutableArrayArray# :: MutableArrayArray# s -> MutableArrayArray# s -> Int#-sameMutableArrayArray# = sameMutableArrayArray#---- |Make a mutable array of arrays immutable, without copying.--unsafeFreezeArrayArray# :: MutableArrayArray# s -> State# s -> (# State# s,ArrayArray# #)-unsafeFreezeArrayArray# = unsafeFreezeArrayArray#---- |Return the number of elements in the array.--sizeofArrayArray# :: ArrayArray# -> Int#-sizeofArrayArray# = sizeofArrayArray#---- |Return the number of elements in the array.--sizeofMutableArrayArray# :: MutableArrayArray# s -> Int#-sizeofMutableArrayArray# = sizeofMutableArrayArray#--indexByteArrayArray# :: ArrayArray# -> Int# -> ByteArray#-indexByteArrayArray# = indexByteArrayArray#--indexArrayArrayArray# :: ArrayArray# -> Int# -> ArrayArray#-indexArrayArrayArray# = indexArrayArrayArray#--readByteArrayArray# :: MutableArrayArray# s -> Int# -> State# s -> (# State# s,ByteArray# #)-readByteArrayArray# = readByteArrayArray#--readMutableByteArrayArray# :: MutableArrayArray# s -> Int# -> State# s -> (# State# s,MutableByteArray# s #)-readMutableByteArrayArray# = readMutableByteArrayArray#--readArrayArrayArray# :: MutableArrayArray# s -> Int# -> State# s -> (# State# s,ArrayArray# #)-readArrayArrayArray# = readArrayArrayArray#--readMutableArrayArrayArray# :: MutableArrayArray# s -> Int# -> State# s -> (# State# s,MutableArrayArray# s #)-readMutableArrayArrayArray# = readMutableArrayArrayArray#--writeByteArrayArray# :: MutableArrayArray# s -> Int# -> ByteArray# -> State# s -> State# s-writeByteArrayArray# = writeByteArrayArray#--writeMutableByteArrayArray# :: MutableArrayArray# s -> Int# -> MutableByteArray# s -> State# s -> State# s-writeMutableByteArrayArray# = writeMutableByteArrayArray#--writeArrayArrayArray# :: MutableArrayArray# s -> Int# -> ArrayArray# -> State# s -> State# s-writeArrayArrayArray# = writeArrayArrayArray#--writeMutableArrayArrayArray# :: MutableArrayArray# s -> Int# -> MutableArrayArray# s -> State# s -> State# s-writeMutableArrayArrayArray# = writeMutableArrayArrayArray#---- |Copy a range of the ArrayArray# to the specified region in the MutableArrayArray#.--- Both arrays must fully contain the specified ranges, but this is not checked.--- The two arrays must not be the same array in different states, but this is not checked either.--copyArrayArray# :: ArrayArray# -> Int# -> MutableArrayArray# s -> Int# -> Int# -> State# s -> State# s-copyArrayArray# = copyArrayArray#---- |Copy a range of the first MutableArrayArray# to the specified region in the second--- MutableArrayArray#.--- Both arrays must fully contain the specified ranges, but this is not checked.--- The regions are allowed to overlap, although this is only possible when the same --- array is provided as both the source and the destination.--- --copyMutableArrayArray# :: MutableArrayArray# s -> Int# -> MutableArrayArray# s -> Int# -> Int# -> State# s -> State# s-copyMutableArrayArray# = copyMutableArrayArray#---- | An arbitrary machine address assumed to point outside--- the garbage-collected heap. --data Addr#---- | The null address. --nullAddr# :: Addr#-nullAddr# = nullAddr#--plusAddr# :: Addr# -> Int# -> Addr#-plusAddr# = plusAddr#---- |Result is meaningless if two @Addr\#@s are so far apart that their--- difference doesn\'t fit in an @Int\#@.--minusAddr# :: Addr# -> Addr# -> Int#-minusAddr# = minusAddr#---- |Return the remainder when the @Addr\#@ arg, treated like an @Int\#@,--- is divided by the @Int\#@ arg.--remAddr# :: Addr# -> Int# -> Int#-remAddr# = remAddr#---- |Coerce directly from address to int. Strongly deprecated.--addr2Int# :: Addr# -> Int#-addr2Int# = addr2Int#---- |Coerce directly from int to address. Strongly deprecated.--int2Addr# :: Int# -> Addr#-int2Addr# = int2Addr#--gtAddr# :: Addr# -> Addr# -> Int#-gtAddr# = gtAddr#--geAddr# :: Addr# -> Addr# -> Int#-geAddr# = geAddr#--eqAddr# :: Addr# -> Addr# -> Int#-eqAddr# = eqAddr#--neAddr# :: Addr# -> Addr# -> Int#-neAddr# = neAddr#--ltAddr# :: Addr# -> Addr# -> Int#-ltAddr# = ltAddr#--leAddr# :: Addr# -> Addr# -> Int#-leAddr# = leAddr#---- |Reads 8-bit character; offset in bytes.--indexCharOffAddr# :: Addr# -> Int# -> Char#-indexCharOffAddr# = indexCharOffAddr#---- |Reads 31-bit character; offset in 4-byte words.--indexWideCharOffAddr# :: Addr# -> Int# -> Char#-indexWideCharOffAddr# = indexWideCharOffAddr#--indexIntOffAddr# :: Addr# -> Int# -> Int#-indexIntOffAddr# = indexIntOffAddr#--indexWordOffAddr# :: Addr# -> Int# -> Word#-indexWordOffAddr# = indexWordOffAddr#--indexAddrOffAddr# :: Addr# -> Int# -> Addr#-indexAddrOffAddr# = indexAddrOffAddr#--indexFloatOffAddr# :: Addr# -> Int# -> Float#-indexFloatOffAddr# = indexFloatOffAddr#--indexDoubleOffAddr# :: Addr# -> Int# -> Double#-indexDoubleOffAddr# = indexDoubleOffAddr#--indexStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a-indexStablePtrOffAddr# = indexStablePtrOffAddr#--indexInt8OffAddr# :: Addr# -> Int# -> Int#-indexInt8OffAddr# = indexInt8OffAddr#--indexInt16OffAddr# :: Addr# -> Int# -> Int#-indexInt16OffAddr# = indexInt16OffAddr#--indexInt32OffAddr# :: Addr# -> Int# -> Int#-indexInt32OffAddr# = indexInt32OffAddr#--indexInt64OffAddr# :: Addr# -> Int# -> Int#-indexInt64OffAddr# = indexInt64OffAddr#--indexWord8OffAddr# :: Addr# -> Int# -> Word#-indexWord8OffAddr# = indexWord8OffAddr#--indexWord16OffAddr# :: Addr# -> Int# -> Word#-indexWord16OffAddr# = indexWord16OffAddr#--indexWord32OffAddr# :: Addr# -> Int# -> Word#-indexWord32OffAddr# = indexWord32OffAddr#--indexWord64OffAddr# :: Addr# -> Int# -> Word#-indexWord64OffAddr# = indexWord64OffAddr#---- |Reads 8-bit character; offset in bytes.--readCharOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Char# #)-readCharOffAddr# = readCharOffAddr#---- |Reads 31-bit character; offset in 4-byte words.--readWideCharOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Char# #)-readWideCharOffAddr# = readWideCharOffAddr#--readIntOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)-readIntOffAddr# = readIntOffAddr#--readWordOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)-readWordOffAddr# = readWordOffAddr#--readAddrOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Addr# #)-readAddrOffAddr# = readAddrOffAddr#--readFloatOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Float# #)-readFloatOffAddr# = readFloatOffAddr#--readDoubleOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Double# #)-readDoubleOffAddr# = readDoubleOffAddr#--readStablePtrOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,StablePtr# a #)-readStablePtrOffAddr# = readStablePtrOffAddr#--readInt8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)-readInt8OffAddr# = readInt8OffAddr#--readInt16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)-readInt16OffAddr# = readInt16OffAddr#--readInt32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)-readInt32OffAddr# = readInt32OffAddr#--readInt64OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)-readInt64OffAddr# = readInt64OffAddr#--readWord8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)-readWord8OffAddr# = readWord8OffAddr#--readWord16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)-readWord16OffAddr# = readWord16OffAddr#--readWord32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)-readWord32OffAddr# = readWord32OffAddr#--readWord64OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)-readWord64OffAddr# = readWord64OffAddr#--writeCharOffAddr# :: Addr# -> Int# -> Char# -> State# s -> State# s-writeCharOffAddr# = writeCharOffAddr#--writeWideCharOffAddr# :: Addr# -> Int# -> Char# -> State# s -> State# s-writeWideCharOffAddr# = writeWideCharOffAddr#--writeIntOffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s-writeIntOffAddr# = writeIntOffAddr#--writeWordOffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s-writeWordOffAddr# = writeWordOffAddr#--writeAddrOffAddr# :: Addr# -> Int# -> Addr# -> State# s -> State# s-writeAddrOffAddr# = writeAddrOffAddr#--writeFloatOffAddr# :: Addr# -> Int# -> Float# -> State# s -> State# s-writeFloatOffAddr# = writeFloatOffAddr#--writeDoubleOffAddr# :: Addr# -> Int# -> Double# -> State# s -> State# s-writeDoubleOffAddr# = writeDoubleOffAddr#--writeStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a -> State# s -> State# s-writeStablePtrOffAddr# = writeStablePtrOffAddr#--writeInt8OffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s-writeInt8OffAddr# = writeInt8OffAddr#--writeInt16OffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s-writeInt16OffAddr# = writeInt16OffAddr#--writeInt32OffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s-writeInt32OffAddr# = writeInt32OffAddr#--writeInt64OffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s-writeInt64OffAddr# = writeInt64OffAddr#--writeWord8OffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s-writeWord8OffAddr# = writeWord8OffAddr#--writeWord16OffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s-writeWord16OffAddr# = writeWord16OffAddr#--writeWord32OffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s-writeWord32OffAddr# = writeWord32OffAddr#--writeWord64OffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s-writeWord64OffAddr# = writeWord64OffAddr#---- |A @MutVar\#@ behaves like a single-element mutable array.--data MutVar# s a---- |Create @MutVar\#@ with specified initial value in specified state thread.--newMutVar# :: a -> State# s -> (# State# s,MutVar# s a #)-newMutVar# = newMutVar#---- |Read contents of @MutVar\#@. Result is not yet evaluated.--readMutVar# :: MutVar# s a -> State# s -> (# State# s,a #)-readMutVar# = readMutVar#---- |Write contents of @MutVar\#@.--writeMutVar# :: MutVar# s a -> a -> State# s -> State# s-writeMutVar# = writeMutVar#--sameMutVar# :: MutVar# s a -> MutVar# s a -> Int#-sameMutVar# = sameMutVar#---- | Modify the contents of a @MutVar\#@. Note that this isn\'t strictly--- speaking the correct type for this function, it should really be--- @MutVar# s a -> (a -> (a,b)) -> State# s -> (# State# s, b #)@, however--- we don\'t know about pairs here. --atomicModifyMutVar# :: MutVar# s a -> (a -> b) -> State# s -> (# State# s,c #)-atomicModifyMutVar# = atomicModifyMutVar#--casMutVar# :: MutVar# s a -> a -> a -> State# s -> (# State# s,Int#,a #)-casMutVar# = casMutVar#--catch# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> (b -> State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)-catch# = catch#--raise# :: b -> o-raise# = raise#--raiseIO# :: a -> State# (RealWorld) -> (# State# (RealWorld),b #)-raiseIO# = raiseIO#--maskAsyncExceptions# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)-maskAsyncExceptions# = maskAsyncExceptions#--maskUninterruptible# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)-maskUninterruptible# = maskUninterruptible#--unmaskAsyncExceptions# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)-unmaskAsyncExceptions# = unmaskAsyncExceptions#--getMaskingState# :: State# (RealWorld) -> (# State# (RealWorld),Int# #)-getMaskingState# = getMaskingState#--data TVar# s a--atomically# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)-atomically# = atomically#--retry# :: State# (RealWorld) -> (# State# (RealWorld),a #)-retry# = retry#--catchRetry# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)-catchRetry# = catchRetry#--catchSTM# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> (b -> State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)-catchSTM# = catchSTM#---- |Create a new @TVar\#@ holding a specified initial value.--newTVar# :: a -> State# s -> (# State# s,TVar# s a #)-newTVar# = newTVar#---- |Read contents of @TVar\#@. Result is not yet evaluated.--readTVar# :: TVar# s a -> State# s -> (# State# s,a #)-readTVar# = readTVar#---- |Read contents of @TVar\#@ outside an STM transaction--readTVarIO# :: TVar# s a -> State# s -> (# State# s,a #)-readTVarIO# = readTVarIO#---- |Write contents of @TVar\#@.--writeTVar# :: TVar# s a -> a -> State# s -> State# s-writeTVar# = writeTVar#--sameTVar# :: TVar# s a -> TVar# s a -> Int#-sameTVar# = sameTVar#---- | A shared mutable variable (/not/ the same as a @MutVar\#@!).--- (Note: in a non-concurrent implementation, @(MVar\# a)@ can be--- represented by @(MutVar\# (Maybe a))@.) --data MVar# s a---- |Create new @MVar\#@; initially empty.--newMVar# :: State# s -> (# State# s,MVar# s a #)-newMVar# = newMVar#---- |If @MVar\#@ is empty, block until it becomes full.--- Then remove and return its contents, and set it empty.--takeMVar# :: MVar# s a -> State# s -> (# State# s,a #)-takeMVar# = takeMVar#---- |If @MVar\#@ is empty, immediately return with integer 0 and value undefined.--- Otherwise, return with integer 1 and contents of @MVar\#@, and set @MVar\#@ empty.--tryTakeMVar# :: MVar# s a -> State# s -> (# State# s,Int#,a #)-tryTakeMVar# = tryTakeMVar#---- |If @MVar\#@ is full, block until it becomes empty.--- Then store value arg as its new contents.--putMVar# :: MVar# s a -> a -> State# s -> State# s-putMVar# = putMVar#---- |If @MVar\#@ is full, immediately return with integer 0.--- Otherwise, store value arg as @MVar\#@\'s new contents, and return with integer 1.--tryPutMVar# :: MVar# s a -> a -> State# s -> (# State# s,Int# #)-tryPutMVar# = tryPutMVar#---- |If @MVar\#@ is empty, block until it becomes full.--- Then read its contents without modifying the MVar, without possibility--- of intervention from other threads.--readMVar# :: MVar# s a -> State# s -> (# State# s,a #)-readMVar# = readMVar#---- |If @MVar\#@ is empty, immediately return with integer 0 and value undefined.--- Otherwise, return with integer 1 and contents of @MVar\#@.--tryReadMVar# :: MVar# s a -> State# s -> (# State# s,Int#,a #)-tryReadMVar# = tryReadMVar#--sameMVar# :: MVar# s a -> MVar# s a -> Int#-sameMVar# = sameMVar#---- |Return 1 if @MVar\#@ is empty; 0 otherwise.--isEmptyMVar# :: MVar# s a -> State# s -> (# State# s,Int# #)-isEmptyMVar# = isEmptyMVar#---- |Sleep specified number of microseconds.--delay# :: Int# -> State# s -> State# s-delay# = delay#---- |Block until input is available on specified file descriptor.--waitRead# :: Int# -> State# s -> State# s-waitRead# = waitRead#---- |Block until output is possible on specified file descriptor.--waitWrite# :: Int# -> State# s -> State# s-waitWrite# = waitWrite#---- | @State\#@ is the primitive, unlifted type of states. It has--- one type parameter, thus @State\# RealWorld@, or @State\# s@,--- where s is a type variable. The only purpose of the type parameter--- is to keep different state threads separate. It is represented by--- nothing at all. --data State# s---- | @RealWorld@ is deeply magical. It is /primitive/, but it is not--- /unlifted/ (hence @ptrArg@). We never manipulate values of type--- @RealWorld@; it\'s only used in the type system, to parameterise @State\#@. --data RealWorld---- |(In a non-concurrent implementation, this can be a singleton--- type, whose (unique) value is returned by @myThreadId\#@. The--- other operations can be omitted.)--data ThreadId#--fork# :: a -> State# (RealWorld) -> (# State# (RealWorld),ThreadId# #)-fork# = fork#--forkOn# :: Int# -> a -> State# (RealWorld) -> (# State# (RealWorld),ThreadId# #)-forkOn# = forkOn#--killThread# :: ThreadId# -> a -> State# (RealWorld) -> State# (RealWorld)-killThread# = killThread#--yield# :: State# (RealWorld) -> State# (RealWorld)-yield# = yield#--myThreadId# :: State# (RealWorld) -> (# State# (RealWorld),ThreadId# #)-myThreadId# = myThreadId#--labelThread# :: ThreadId# -> Addr# -> State# (RealWorld) -> State# (RealWorld)-labelThread# = labelThread#--isCurrentThreadBound# :: State# (RealWorld) -> (# State# (RealWorld),Int# #)-isCurrentThreadBound# = isCurrentThreadBound#--noDuplicate# :: State# s -> State# s-noDuplicate# = noDuplicate#--threadStatus# :: ThreadId# -> State# (RealWorld) -> (# State# (RealWorld),Int#,Int#,Int# #)-threadStatus# = threadStatus#--data Weak# b---- | @mkWeak# k v finalizer s@ creates a weak reference to value @k@,--- with an associated reference to some value @v@. If @k@ is still--- alive then @v@ can be retrieved using @deRefWeak#@. Note that--- the type of @k@ must be represented by a pointer (i.e. of kind @TYPE \'LiftedRep@ or @TYPE \'UnliftedRep@). --mkWeak# :: o -> b -> (State# (RealWorld) -> (# State# (RealWorld),c #)) -> State# (RealWorld) -> (# State# (RealWorld),Weak# b #)-mkWeak# = mkWeak#--mkWeakNoFinalizer# :: o -> b -> State# (RealWorld) -> (# State# (RealWorld),Weak# b #)-mkWeakNoFinalizer# = mkWeakNoFinalizer#---- | @addCFinalizerToWeak# fptr ptr flag eptr w@ attaches a C--- function pointer @fptr@ to a weak pointer @w@ as a finalizer. If--- @flag@ is zero, @fptr@ will be called with one argument,--- @ptr@. Otherwise, it will be called with two arguments,--- @eptr@ and @ptr@. @addCFinalizerToWeak#@ returns--- 1 on success, or 0 if @w@ is already dead. --addCFinalizerToWeak# :: Addr# -> Addr# -> Int# -> Addr# -> Weak# b -> State# (RealWorld) -> (# State# (RealWorld),Int# #)-addCFinalizerToWeak# = addCFinalizerToWeak#--deRefWeak# :: Weak# a -> State# (RealWorld) -> (# State# (RealWorld),Int#,a #)-deRefWeak# = deRefWeak#---- | Finalize a weak pointer. The return value is an unboxed tuple--- containing the new state of the world and an \"unboxed Maybe\",--- represented by an @Int#@ and a (possibly invalid) finalization--- action. An @Int#@ of @1@ indicates that the finalizer is valid. The--- return value @b@ from the finalizer should be ignored. --finalizeWeak# :: Weak# a -> State# (RealWorld) -> (# State# (RealWorld),Int#,State# (RealWorld) -> (# State# (RealWorld),b #) #)-finalizeWeak# = finalizeWeak#--touch# :: o -> State# (RealWorld) -> State# (RealWorld)-touch# = touch#--data StablePtr# a--data StableName# a--makeStablePtr# :: a -> State# (RealWorld) -> (# State# (RealWorld),StablePtr# a #)-makeStablePtr# = makeStablePtr#--deRefStablePtr# :: StablePtr# a -> State# (RealWorld) -> (# State# (RealWorld),a #)-deRefStablePtr# = deRefStablePtr#--eqStablePtr# :: StablePtr# a -> StablePtr# a -> Int#-eqStablePtr# = eqStablePtr#--makeStableName# :: a -> State# (RealWorld) -> (# State# (RealWorld),StableName# a #)-makeStableName# = makeStableName#--eqStableName# :: StableName# a -> StableName# b -> Int#-eqStableName# = eqStableName#--stableNameToInt# :: StableName# a -> Int#-stableNameToInt# = stableNameToInt#--data Compact#---- | Create a new Compact with the given size (in bytes, not words).--- The size is rounded up to a multiple of the allocator block size,--- and capped to one mega block. --compactNew# :: Word# -> State# (RealWorld) -> (# State# (RealWorld),Compact# #)-compactNew# = compactNew#---- | Set the new allocation size of the compact. This value (in bytes)--- determines the size of each block in the compact chain. --compactResize# :: Compact# -> Word# -> State# (RealWorld) -> State# (RealWorld)-compactResize# = compactResize#---- | Returns 1# if the object is contained in the compact, 0# otherwise. --compactContains# :: Compact# -> a -> State# (RealWorld) -> (# State# (RealWorld),Int# #)-compactContains# = compactContains#---- | Returns 1# if the object is in any compact at all, 0# otherwise. --compactContainsAny# :: a -> State# (RealWorld) -> (# State# (RealWorld),Int# #)-compactContainsAny# = compactContainsAny#---- | Returns the address and the size (in bytes) of the first block of--- a compact. --compactGetFirstBlock# :: Compact# -> State# (RealWorld) -> (# State# (RealWorld),Addr#,Word# #)-compactGetFirstBlock# = compactGetFirstBlock#---- | Given a compact and the address of one its blocks, returns the--- next block and its size, or #nullAddr if the argument was the--- last block in the compact. --compactGetNextBlock# :: Compact# -> Addr# -> State# (RealWorld) -> (# State# (RealWorld),Addr#,Word# #)-compactGetNextBlock# = compactGetNextBlock#---- | Attempt to allocate a compact block with the given size (in--- bytes) at the given address. The first argument is a hint to--- the allocator, allocation might be satisfied at a different--- address (which is returned).--- The resulting block is not known to the GC until--- compactFixupPointers# is called on it, and care must be taken--- so that the address does not escape or memory will be leaked.--- --compactAllocateBlock# :: Word# -> Addr# -> State# (RealWorld) -> (# State# (RealWorld),Addr# #)-compactAllocateBlock# = compactAllocateBlock#---- | Given the pointer to the first block of a compact, and the--- address of the root object in the old address space, fix up--- the internal pointers inside the compact to account for--- a different position in memory than when it was serialized.--- This method must be called exactly once after importing--- a serialized compact, and returns the new compact and--- the new adjusted root address. --compactFixupPointers# :: Addr# -> Addr# -> State# (RealWorld) -> (# State# (RealWorld),Compact#,Addr# #)-compactFixupPointers# = compactFixupPointers#---- | Recursively add a closure and its transitive closure to a--- {\texttt Compact\#}, evaluating any unevaluated components at the--- same time. Note: {\texttt compactAdd\#} is not thread-safe, so--- only one thread may call {\texttt compactAdd\#} with a particular--- {\texttt Compact#} at any given time. The primop does not--- enforce any mutual exclusion; the caller is expected to--- arrange this. --compactAdd# :: Compact# -> a -> State# (RealWorld) -> (# State# (RealWorld),a #)-compactAdd# = compactAdd#---- | Like {\texttt compactAdd\#}, but retains sharing and cycles--- during compaction. --compactAddWithSharing# :: Compact# -> a -> State# (RealWorld) -> (# State# (RealWorld),a #)-compactAddWithSharing# = compactAddWithSharing#---- | Return the size (in bytes) of the total amount of data in the Compact# --compactSize# :: Compact# -> State# (RealWorld) -> (# State# (RealWorld),Word# #)-compactSize# = compactSize#---- | Returns {\texttt 1\#} if the given pointers are equal and {\texttt 0\#} otherwise. --reallyUnsafePtrEquality# :: a -> a -> Int#-reallyUnsafePtrEquality# = reallyUnsafePtrEquality#--par# :: a -> Int#-par# = par#--spark# :: a -> State# s -> (# State# s,a #)-spark# = spark#--seq# :: a -> State# s -> (# State# s,a #)-seq# = seq#--getSpark# :: State# s -> (# State# s,Int#,a #)-getSpark# = getSpark#---- | Returns the number of sparks in the local spark pool. --numSparks# :: State# s -> (# State# s,Int# #)-numSparks# = numSparks#--dataToTag# :: a -> Int#-dataToTag# = dataToTag#---- |- Note [dataToTag#]--- ~~~~~~~~~~~~~~~~~~~~--- The dataToTag# primop should always be applied to an evaluated argument.--- The way to ensure this is to invoke it via the \'getTag\' wrapper in GHC.Base:--- getTag :: a -> Int#--- getTag !x = dataToTag# x--- --- But now consider--- \z. case x of y -> let v = dataToTag# y in ...--- --- To improve floating, the FloatOut pass (deliberately) does a--- binder-swap on the case, to give--- \z. case x of y -> let v = dataToTag# x in ...--- --- Now FloatOut might float that v-binding outside the \z. But that is--- bad because that might mean x gets evaluated much too early! (CorePrep--- adds an eval to a dataToTag# call, to ensure that the argument really is--- evaluated; see CorePrep Note [dataToTag magic].)--- --- Solution: make DataToTag into a can_fail primop. That will stop it floating--- (see Note [PrimOp can_fail and has_side_effects] in PrimOp). It\'s a bit of--- a hack but never mind.--- ---tagToEnum# :: Int# -> a-tagToEnum# = let x = x in x---- | Primitive bytecode type. --data BCO#---- | Convert an @Addr\#@ to a followable Any type. --addrToAny# :: Addr# -> (# a #)-addrToAny# = addrToAny#---- | Retrieve the address of any Haskell value. This is--- essentially an {\texttt unsafeCoerce\#}, but if implemented as such--- the core lint pass complains and fails to compile.--- As a primop, it is opaque to core\/stg, and only appears--- in cmm (where the copy propagation pass will get rid of it).--- Note that \"a\" must be a value, not a thunk! It\'s too late--- for strictness analysis to enforce this, so you\'re on your--- own to guarantee this. Also note that {\texttt Addr\#} is not a GC--- pointer - up to you to guarantee that it does not become--- a dangling pointer immediately after you get it.--anyToAddr# :: a -> State# (RealWorld) -> (# State# (RealWorld),Addr# #)-anyToAddr# = anyToAddr#---- | Wrap a BCO in a @AP_UPD@ thunk which will be updated with the value of--- the BCO when evaluated. --mkApUpd0# :: BCO# -> (# a #)-mkApUpd0# = mkApUpd0#---- | @newBCO\# instrs lits ptrs arity bitmap@ creates a new bytecode object. The--- resulting object encodes a function of the given arity with the instructions--- encoded in @instrs@, and a static reference table usage bitmap given by--- @bitmap@. --newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# s -> (# State# s,BCO# #)-newBCO# = newBCO#---- | @unpackClosure\# closure@ copies the closure and pointers in the--- payload of the given closure into two new arrays, and returns a pointer to--- the first word of the closure\'s info table, a non-pointer array for the raw--- bytes of the closure, and a pointer array for the pointers in the payload. --unpackClosure# :: a -> (# Addr#,ByteArray#,Array# b #)-unpackClosure# = unpackClosure#--getApStackVal# :: a -> Int# -> (# Int#,b #)-getApStackVal# = getApStackVal#--getCCSOf# :: a -> State# s -> (# State# s,Addr# #)-getCCSOf# = getCCSOf#---- | Returns the current @CostCentreStack@ (value is @NULL@ if--- not profiling). Takes a dummy argument which can be used to--- avoid the call to @getCurrentCCS\#@ being floated out by the--- simplifier, which would result in an uninformative stack--- (\"CAF\"). --getCurrentCCS# :: a -> State# s -> (# State# s,Addr# #)-getCurrentCCS# = getCurrentCCS#---- | Run the supplied IO action with an empty CCS. For example, this--- is used by the interpreter to run an interpreted computation--- without the call stack showing that it was invoked from GHC. --clearCCS# :: (State# s -> (# State# s,a #)) -> State# s -> (# State# s,a #)-clearCCS# = clearCCS#---- | The type constructor @Proxy#@ is used to bear witness to some--- type variable. It\'s used when you want to pass around proxy values--- for doing things like modelling type applications. A @Proxy#@--- is not only unboxed, it also has a polymorphic kind, and has no--- runtime representation, being totally free. --data Proxy# a---- | Witness for an unboxed @Proxy#@ value, which has no runtime--- representation. --proxy# :: Proxy# a-proxy# = proxy#---- | The value of @seq a b@ is bottom if @a@ is bottom, and--- otherwise equal to @b@. In other words, it evaluates the first --- argument @a@ to weak head normal form (WHNF). @seq@ is usually --- introduced to improve performance by avoiding unneeded laziness.--- --- A note on evaluation order: the expression @seq a b@ does--- /not/ guarantee that @a@ will be evaluated before @b@.--- The only guarantee given by @seq@ is that the both @a@--- and @b@ will be evaluated before @seq@ returns a value.--- In particular, this means that @b@ may be evaluated before--- @a@. If you need to guarantee a specific order of evaluation,--- you must use the function @pseq@ from the \"parallel\" package. --seq :: a -> b -> b-seq = seq---- | The function @unsafeCoerce\#@ allows you to side-step the typechecker entirely. That--- is, it allows you to coerce any type into any other type. If you use this function,--- you had better get it right, otherwise segmentation faults await. It is generally--- used when you want to write a program that you know is well-typed, but where Haskell\'s--- type system is not expressive enough to prove that it is well typed.--- --- The following uses of @unsafeCoerce\#@ are supposed to work (i.e. not lead to--- spurious compile-time or run-time crashes):--- --- * Casting any lifted type to @Any@--- --- * Casting @Any@ back to the real type--- --- * Casting an unboxed type to another unboxed type of the same size.--- (Casting between floating-point and integral types does not work.--- See the @GHC.Float@ module for functions to do work.)--- --- * Casting between two types that have the same runtime representation. One case is when--- the two types differ only in \"phantom\" type parameters, for example--- @Ptr Int@ to @Ptr Float@, or @[Int]@ to @[Float]@ when the list is--- known to be empty. Also, a @newtype@ of a type @T@ has the same representation--- at runtime as @T@.--- --- Other uses of @unsafeCoerce\#@ are undefined. In particular, you should not use--- @unsafeCoerce\#@ to cast a T to an algebraic data type D, unless T is also--- an algebraic data type. For example, do not cast @Int->Int@ to @Bool@, even if--- you later cast that @Bool@ back to @Int->Int@ before applying it. The reasons--- have to do with GHC\'s internal representation details (for the cognoscenti, data values--- can be entered but function closures cannot). If you want a safe type to cast things--- to, use @Any@, which is not an algebraic data type.--- --- --unsafeCoerce# :: a -> b-unsafeCoerce# = unsafeCoerce#---- | Emits an event via the RTS tracing framework. The contents--- of the event is the zero-terminated byte string passed as the first--- argument. The event will be emitted either to the .eventlog file,--- or to stderr, depending on the runtime RTS flags. --traceEvent# :: Addr# -> State# s -> State# s-traceEvent# = traceEvent#---- | Emits a marker event via the RTS tracing framework. The contents--- of the event is the zero-terminated byte string passed as the first--- argument. The event will be emitted either to the .eventlog file,--- or to stderr, depending on the runtime RTS flags. --traceMarker# :: Addr# -> State# s -> State# s-traceMarker# = traceMarker#---- | Retrieves the allocation counter for the current thread. --getThreadAllocationCounter# :: State# (RealWorld) -> (# State# (RealWorld),Int# #)-getThreadAllocationCounter# = getThreadAllocationCounter#---- | Sets the allocation counter for the current thread to the given value. --setThreadAllocationCounter# :: Int# -> State# (RealWorld) -> State# (RealWorld)-setThreadAllocationCounter# = setThreadAllocationCounter#---- | The function @coerce@ allows you to safely convert between values of--- types that have the same representation with no run-time overhead. In the--- simplest case you can use it instead of a newtype constructor, to go from--- the newtype\'s concrete type to the abstract type. But it also works in--- more complicated settings, e.g. converting a list of newtypes to a list of--- concrete types.--- --coerce :: Coercible a b => a -> b-coerce = coerce--data Int8X16#--data Int16X8#--data Int32X4#--data Int64X2#--data Int8X32#--data Int16X16#--data Int32X8#--data Int64X4#--data Int8X64#--data Int16X32#--data Int32X16#--data Int64X8#--data Word8X16#--data Word16X8#--data Word32X4#--data Word64X2#--data Word8X32#--data Word16X16#--data Word32X8#--data Word64X4#--data Word8X64#--data Word16X32#--data Word32X16#--data Word64X8#--data FloatX4#--data DoubleX2#--data FloatX8#--data DoubleX4#--data FloatX16#--data DoubleX8#---- | Broadcast a scalar to all elements of a vector. --broadcastInt8X16# :: Int# -> Int8X16#-broadcastInt8X16# = broadcastInt8X16#---- | Broadcast a scalar to all elements of a vector. --broadcastInt16X8# :: Int# -> Int16X8#-broadcastInt16X8# = broadcastInt16X8#---- | Broadcast a scalar to all elements of a vector. --broadcastInt32X4# :: Int# -> Int32X4#-broadcastInt32X4# = broadcastInt32X4#---- | Broadcast a scalar to all elements of a vector. --broadcastInt64X2# :: Int# -> Int64X2#-broadcastInt64X2# = broadcastInt64X2#---- | Broadcast a scalar to all elements of a vector. --broadcastInt8X32# :: Int# -> Int8X32#-broadcastInt8X32# = broadcastInt8X32#---- | Broadcast a scalar to all elements of a vector. --broadcastInt16X16# :: Int# -> Int16X16#-broadcastInt16X16# = broadcastInt16X16#---- | Broadcast a scalar to all elements of a vector. --broadcastInt32X8# :: Int# -> Int32X8#-broadcastInt32X8# = broadcastInt32X8#---- | Broadcast a scalar to all elements of a vector. --broadcastInt64X4# :: Int# -> Int64X4#-broadcastInt64X4# = broadcastInt64X4#---- | Broadcast a scalar to all elements of a vector. --broadcastInt8X64# :: Int# -> Int8X64#-broadcastInt8X64# = broadcastInt8X64#---- | Broadcast a scalar to all elements of a vector. --broadcastInt16X32# :: Int# -> Int16X32#-broadcastInt16X32# = broadcastInt16X32#---- | Broadcast a scalar to all elements of a vector. --broadcastInt32X16# :: Int# -> Int32X16#-broadcastInt32X16# = broadcastInt32X16#---- | Broadcast a scalar to all elements of a vector. --broadcastInt64X8# :: Int# -> Int64X8#-broadcastInt64X8# = broadcastInt64X8#---- | Broadcast a scalar to all elements of a vector. --broadcastWord8X16# :: Word# -> Word8X16#-broadcastWord8X16# = broadcastWord8X16#---- | Broadcast a scalar to all elements of a vector. --broadcastWord16X8# :: Word# -> Word16X8#-broadcastWord16X8# = broadcastWord16X8#---- | Broadcast a scalar to all elements of a vector. --broadcastWord32X4# :: Word# -> Word32X4#-broadcastWord32X4# = broadcastWord32X4#---- | Broadcast a scalar to all elements of a vector. --broadcastWord64X2# :: Word# -> Word64X2#-broadcastWord64X2# = broadcastWord64X2#---- | Broadcast a scalar to all elements of a vector. --broadcastWord8X32# :: Word# -> Word8X32#-broadcastWord8X32# = broadcastWord8X32#---- | Broadcast a scalar to all elements of a vector. --broadcastWord16X16# :: Word# -> Word16X16#-broadcastWord16X16# = broadcastWord16X16#---- | Broadcast a scalar to all elements of a vector. --broadcastWord32X8# :: Word# -> Word32X8#-broadcastWord32X8# = broadcastWord32X8#---- | Broadcast a scalar to all elements of a vector. --broadcastWord64X4# :: Word# -> Word64X4#-broadcastWord64X4# = broadcastWord64X4#---- | Broadcast a scalar to all elements of a vector. --broadcastWord8X64# :: Word# -> Word8X64#-broadcastWord8X64# = broadcastWord8X64#---- | Broadcast a scalar to all elements of a vector. --broadcastWord16X32# :: Word# -> Word16X32#-broadcastWord16X32# = broadcastWord16X32#---- | Broadcast a scalar to all elements of a vector. --broadcastWord32X16# :: Word# -> Word32X16#-broadcastWord32X16# = broadcastWord32X16#---- | Broadcast a scalar to all elements of a vector. --broadcastWord64X8# :: Word# -> Word64X8#-broadcastWord64X8# = broadcastWord64X8#---- | Broadcast a scalar to all elements of a vector. --broadcastFloatX4# :: Float# -> FloatX4#-broadcastFloatX4# = broadcastFloatX4#---- | Broadcast a scalar to all elements of a vector. --broadcastDoubleX2# :: Double# -> DoubleX2#-broadcastDoubleX2# = broadcastDoubleX2#---- | Broadcast a scalar to all elements of a vector. --broadcastFloatX8# :: Float# -> FloatX8#-broadcastFloatX8# = broadcastFloatX8#---- | Broadcast a scalar to all elements of a vector. --broadcastDoubleX4# :: Double# -> DoubleX4#-broadcastDoubleX4# = broadcastDoubleX4#---- | Broadcast a scalar to all elements of a vector. --broadcastFloatX16# :: Float# -> FloatX16#-broadcastFloatX16# = broadcastFloatX16#---- | Broadcast a scalar to all elements of a vector. --broadcastDoubleX8# :: Double# -> DoubleX8#-broadcastDoubleX8# = broadcastDoubleX8#---- | Pack the elements of an unboxed tuple into a vector. --packInt8X16# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int8X16#-packInt8X16# = packInt8X16#---- | Pack the elements of an unboxed tuple into a vector. --packInt16X8# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int16X8#-packInt16X8# = packInt16X8#---- | Pack the elements of an unboxed tuple into a vector. --packInt32X4# :: (# Int#,Int#,Int#,Int# #) -> Int32X4#-packInt32X4# = packInt32X4#---- | Pack the elements of an unboxed tuple into a vector. --packInt64X2# :: (# Int#,Int# #) -> Int64X2#-packInt64X2# = packInt64X2#---- | Pack the elements of an unboxed tuple into a vector. --packInt8X32# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int8X32#-packInt8X32# = packInt8X32#---- | Pack the elements of an unboxed tuple into a vector. --packInt16X16# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int16X16#-packInt16X16# = packInt16X16#---- | Pack the elements of an unboxed tuple into a vector. --packInt32X8# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int32X8#-packInt32X8# = packInt32X8#---- | Pack the elements of an unboxed tuple into a vector. --packInt64X4# :: (# Int#,Int#,Int#,Int# #) -> Int64X4#-packInt64X4# = packInt64X4#---- | Pack the elements of an unboxed tuple into a vector. --packInt8X64# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int8X64#-packInt8X64# = packInt8X64#---- | Pack the elements of an unboxed tuple into a vector. --packInt16X32# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int16X32#-packInt16X32# = packInt16X32#---- | Pack the elements of an unboxed tuple into a vector. --packInt32X16# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int32X16#-packInt32X16# = packInt32X16#---- | Pack the elements of an unboxed tuple into a vector. --packInt64X8# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int64X8#-packInt64X8# = packInt64X8#---- | Pack the elements of an unboxed tuple into a vector. --packWord8X16# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word8X16#-packWord8X16# = packWord8X16#---- | Pack the elements of an unboxed tuple into a vector. --packWord16X8# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word16X8#-packWord16X8# = packWord16X8#---- | Pack the elements of an unboxed tuple into a vector. --packWord32X4# :: (# Word#,Word#,Word#,Word# #) -> Word32X4#-packWord32X4# = packWord32X4#---- | Pack the elements of an unboxed tuple into a vector. --packWord64X2# :: (# Word#,Word# #) -> Word64X2#-packWord64X2# = packWord64X2#---- | Pack the elements of an unboxed tuple into a vector. --packWord8X32# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word8X32#-packWord8X32# = packWord8X32#---- | Pack the elements of an unboxed tuple into a vector. --packWord16X16# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word16X16#-packWord16X16# = packWord16X16#---- | Pack the elements of an unboxed tuple into a vector. --packWord32X8# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word32X8#-packWord32X8# = packWord32X8#---- | Pack the elements of an unboxed tuple into a vector. --packWord64X4# :: (# Word#,Word#,Word#,Word# #) -> Word64X4#-packWord64X4# = packWord64X4#---- | Pack the elements of an unboxed tuple into a vector. --packWord8X64# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word8X64#-packWord8X64# = packWord8X64#---- | Pack the elements of an unboxed tuple into a vector. --packWord16X32# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word16X32#-packWord16X32# = packWord16X32#---- | Pack the elements of an unboxed tuple into a vector. --packWord32X16# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word32X16#-packWord32X16# = packWord32X16#---- | Pack the elements of an unboxed tuple into a vector. --packWord64X8# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word64X8#-packWord64X8# = packWord64X8#---- | Pack the elements of an unboxed tuple into a vector. --packFloatX4# :: (# Float#,Float#,Float#,Float# #) -> FloatX4#-packFloatX4# = packFloatX4#---- | Pack the elements of an unboxed tuple into a vector. --packDoubleX2# :: (# Double#,Double# #) -> DoubleX2#-packDoubleX2# = packDoubleX2#---- | Pack the elements of an unboxed tuple into a vector. --packFloatX8# :: (# Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float# #) -> FloatX8#-packFloatX8# = packFloatX8#---- | Pack the elements of an unboxed tuple into a vector. --packDoubleX4# :: (# Double#,Double#,Double#,Double# #) -> DoubleX4#-packDoubleX4# = packDoubleX4#---- | Pack the elements of an unboxed tuple into a vector. --packFloatX16# :: (# Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float# #) -> FloatX16#-packFloatX16# = packFloatX16#---- | Pack the elements of an unboxed tuple into a vector. --packDoubleX8# :: (# Double#,Double#,Double#,Double#,Double#,Double#,Double#,Double# #) -> DoubleX8#-packDoubleX8# = packDoubleX8#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt8X16# :: Int8X16# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)-unpackInt8X16# = unpackInt8X16#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt16X8# :: Int16X8# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)-unpackInt16X8# = unpackInt16X8#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt32X4# :: Int32X4# -> (# Int#,Int#,Int#,Int# #)-unpackInt32X4# = unpackInt32X4#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt64X2# :: Int64X2# -> (# Int#,Int# #)-unpackInt64X2# = unpackInt64X2#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt8X32# :: Int8X32# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)-unpackInt8X32# = unpackInt8X32#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt16X16# :: Int16X16# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)-unpackInt16X16# = unpackInt16X16#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt32X8# :: Int32X8# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)-unpackInt32X8# = unpackInt32X8#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt64X4# :: Int64X4# -> (# Int#,Int#,Int#,Int# #)-unpackInt64X4# = unpackInt64X4#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt8X64# :: Int8X64# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)-unpackInt8X64# = unpackInt8X64#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt16X32# :: Int16X32# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)-unpackInt16X32# = unpackInt16X32#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt32X16# :: Int32X16# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)-unpackInt32X16# = unpackInt32X16#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackInt64X8# :: Int64X8# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)-unpackInt64X8# = unpackInt64X8#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord8X16# :: Word8X16# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)-unpackWord8X16# = unpackWord8X16#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord16X8# :: Word16X8# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)-unpackWord16X8# = unpackWord16X8#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord32X4# :: Word32X4# -> (# Word#,Word#,Word#,Word# #)-unpackWord32X4# = unpackWord32X4#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord64X2# :: Word64X2# -> (# Word#,Word# #)-unpackWord64X2# = unpackWord64X2#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord8X32# :: Word8X32# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)-unpackWord8X32# = unpackWord8X32#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord16X16# :: Word16X16# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)-unpackWord16X16# = unpackWord16X16#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord32X8# :: Word32X8# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)-unpackWord32X8# = unpackWord32X8#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord64X4# :: Word64X4# -> (# Word#,Word#,Word#,Word# #)-unpackWord64X4# = unpackWord64X4#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord8X64# :: Word8X64# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)-unpackWord8X64# = unpackWord8X64#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord16X32# :: Word16X32# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)-unpackWord16X32# = unpackWord16X32#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord32X16# :: Word32X16# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)-unpackWord32X16# = unpackWord32X16#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackWord64X8# :: Word64X8# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)-unpackWord64X8# = unpackWord64X8#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackFloatX4# :: FloatX4# -> (# Float#,Float#,Float#,Float# #)-unpackFloatX4# = unpackFloatX4#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackDoubleX2# :: DoubleX2# -> (# Double#,Double# #)-unpackDoubleX2# = unpackDoubleX2#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackFloatX8# :: FloatX8# -> (# Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float# #)-unpackFloatX8# = unpackFloatX8#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackDoubleX4# :: DoubleX4# -> (# Double#,Double#,Double#,Double# #)-unpackDoubleX4# = unpackDoubleX4#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackFloatX16# :: FloatX16# -> (# Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float# #)-unpackFloatX16# = unpackFloatX16#---- | Unpack the elements of a vector into an unboxed tuple. #--unpackDoubleX8# :: DoubleX8# -> (# Double#,Double#,Double#,Double#,Double#,Double#,Double#,Double# #)-unpackDoubleX8# = unpackDoubleX8#---- | Insert a scalar at the given position in a vector. --insertInt8X16# :: Int8X16# -> Int# -> Int# -> Int8X16#-insertInt8X16# = insertInt8X16#---- | Insert a scalar at the given position in a vector. --insertInt16X8# :: Int16X8# -> Int# -> Int# -> Int16X8#-insertInt16X8# = insertInt16X8#---- | Insert a scalar at the given position in a vector. --insertInt32X4# :: Int32X4# -> Int# -> Int# -> Int32X4#-insertInt32X4# = insertInt32X4#---- | Insert a scalar at the given position in a vector. --insertInt64X2# :: Int64X2# -> Int# -> Int# -> Int64X2#-insertInt64X2# = insertInt64X2#---- | Insert a scalar at the given position in a vector. --insertInt8X32# :: Int8X32# -> Int# -> Int# -> Int8X32#-insertInt8X32# = insertInt8X32#---- | Insert a scalar at the given position in a vector. --insertInt16X16# :: Int16X16# -> Int# -> Int# -> Int16X16#-insertInt16X16# = insertInt16X16#---- | Insert a scalar at the given position in a vector. --insertInt32X8# :: Int32X8# -> Int# -> Int# -> Int32X8#-insertInt32X8# = insertInt32X8#---- | Insert a scalar at the given position in a vector. --insertInt64X4# :: Int64X4# -> Int# -> Int# -> Int64X4#-insertInt64X4# = insertInt64X4#---- | Insert a scalar at the given position in a vector. --insertInt8X64# :: Int8X64# -> Int# -> Int# -> Int8X64#-insertInt8X64# = insertInt8X64#---- | Insert a scalar at the given position in a vector. --insertInt16X32# :: Int16X32# -> Int# -> Int# -> Int16X32#-insertInt16X32# = insertInt16X32#---- | Insert a scalar at the given position in a vector. --insertInt32X16# :: Int32X16# -> Int# -> Int# -> Int32X16#-insertInt32X16# = insertInt32X16#---- | Insert a scalar at the given position in a vector. --insertInt64X8# :: Int64X8# -> Int# -> Int# -> Int64X8#-insertInt64X8# = insertInt64X8#---- | Insert a scalar at the given position in a vector. --insertWord8X16# :: Word8X16# -> Word# -> Int# -> Word8X16#-insertWord8X16# = insertWord8X16#---- | Insert a scalar at the given position in a vector. --insertWord16X8# :: Word16X8# -> Word# -> Int# -> Word16X8#-insertWord16X8# = insertWord16X8#---- | Insert a scalar at the given position in a vector. --insertWord32X4# :: Word32X4# -> Word# -> Int# -> Word32X4#-insertWord32X4# = insertWord32X4#---- | Insert a scalar at the given position in a vector. --insertWord64X2# :: Word64X2# -> Word# -> Int# -> Word64X2#-insertWord64X2# = insertWord64X2#---- | Insert a scalar at the given position in a vector. --insertWord8X32# :: Word8X32# -> Word# -> Int# -> Word8X32#-insertWord8X32# = insertWord8X32#---- | Insert a scalar at the given position in a vector. --insertWord16X16# :: Word16X16# -> Word# -> Int# -> Word16X16#-insertWord16X16# = insertWord16X16#---- | Insert a scalar at the given position in a vector. --insertWord32X8# :: Word32X8# -> Word# -> Int# -> Word32X8#-insertWord32X8# = insertWord32X8#---- | Insert a scalar at the given position in a vector. --insertWord64X4# :: Word64X4# -> Word# -> Int# -> Word64X4#-insertWord64X4# = insertWord64X4#---- | Insert a scalar at the given position in a vector. --insertWord8X64# :: Word8X64# -> Word# -> Int# -> Word8X64#-insertWord8X64# = insertWord8X64#---- | Insert a scalar at the given position in a vector. --insertWord16X32# :: Word16X32# -> Word# -> Int# -> Word16X32#-insertWord16X32# = insertWord16X32#---- | Insert a scalar at the given position in a vector. --insertWord32X16# :: Word32X16# -> Word# -> Int# -> Word32X16#-insertWord32X16# = insertWord32X16#---- | Insert a scalar at the given position in a vector. --insertWord64X8# :: Word64X8# -> Word# -> Int# -> Word64X8#-insertWord64X8# = insertWord64X8#---- | Insert a scalar at the given position in a vector. --insertFloatX4# :: FloatX4# -> Float# -> Int# -> FloatX4#-insertFloatX4# = insertFloatX4#---- | Insert a scalar at the given position in a vector. --insertDoubleX2# :: DoubleX2# -> Double# -> Int# -> DoubleX2#-insertDoubleX2# = insertDoubleX2#---- | Insert a scalar at the given position in a vector. --insertFloatX8# :: FloatX8# -> Float# -> Int# -> FloatX8#-insertFloatX8# = insertFloatX8#---- | Insert a scalar at the given position in a vector. --insertDoubleX4# :: DoubleX4# -> Double# -> Int# -> DoubleX4#-insertDoubleX4# = insertDoubleX4#---- | Insert a scalar at the given position in a vector. --insertFloatX16# :: FloatX16# -> Float# -> Int# -> FloatX16#-insertFloatX16# = insertFloatX16#---- | Insert a scalar at the given position in a vector. --insertDoubleX8# :: DoubleX8# -> Double# -> Int# -> DoubleX8#-insertDoubleX8# = insertDoubleX8#---- | Add two vectors element-wise. --plusInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#-plusInt8X16# = plusInt8X16#---- | Add two vectors element-wise. --plusInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#-plusInt16X8# = plusInt16X8#---- | Add two vectors element-wise. --plusInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#-plusInt32X4# = plusInt32X4#---- | Add two vectors element-wise. --plusInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#-plusInt64X2# = plusInt64X2#---- | Add two vectors element-wise. --plusInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#-plusInt8X32# = plusInt8X32#---- | Add two vectors element-wise. --plusInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#-plusInt16X16# = plusInt16X16#---- | Add two vectors element-wise. --plusInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#-plusInt32X8# = plusInt32X8#---- | Add two vectors element-wise. --plusInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#-plusInt64X4# = plusInt64X4#---- | Add two vectors element-wise. --plusInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#-plusInt8X64# = plusInt8X64#---- | Add two vectors element-wise. --plusInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#-plusInt16X32# = plusInt16X32#---- | Add two vectors element-wise. --plusInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#-plusInt32X16# = plusInt32X16#---- | Add two vectors element-wise. --plusInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#-plusInt64X8# = plusInt64X8#---- | Add two vectors element-wise. --plusWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#-plusWord8X16# = plusWord8X16#---- | Add two vectors element-wise. --plusWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#-plusWord16X8# = plusWord16X8#---- | Add two vectors element-wise. --plusWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#-plusWord32X4# = plusWord32X4#---- | Add two vectors element-wise. --plusWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#-plusWord64X2# = plusWord64X2#---- | Add two vectors element-wise. --plusWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#-plusWord8X32# = plusWord8X32#---- | Add two vectors element-wise. --plusWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#-plusWord16X16# = plusWord16X16#---- | Add two vectors element-wise. --plusWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#-plusWord32X8# = plusWord32X8#---- | Add two vectors element-wise. --plusWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#-plusWord64X4# = plusWord64X4#---- | Add two vectors element-wise. --plusWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#-plusWord8X64# = plusWord8X64#---- | Add two vectors element-wise. --plusWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#-plusWord16X32# = plusWord16X32#---- | Add two vectors element-wise. --plusWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#-plusWord32X16# = plusWord32X16#---- | Add two vectors element-wise. --plusWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#-plusWord64X8# = plusWord64X8#---- | Add two vectors element-wise. --plusFloatX4# :: FloatX4# -> FloatX4# -> FloatX4#-plusFloatX4# = plusFloatX4#---- | Add two vectors element-wise. --plusDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2#-plusDoubleX2# = plusDoubleX2#---- | Add two vectors element-wise. --plusFloatX8# :: FloatX8# -> FloatX8# -> FloatX8#-plusFloatX8# = plusFloatX8#---- | Add two vectors element-wise. --plusDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4#-plusDoubleX4# = plusDoubleX4#---- | Add two vectors element-wise. --plusFloatX16# :: FloatX16# -> FloatX16# -> FloatX16#-plusFloatX16# = plusFloatX16#---- | Add two vectors element-wise. --plusDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8#-plusDoubleX8# = plusDoubleX8#---- | Subtract two vectors element-wise. --minusInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#-minusInt8X16# = minusInt8X16#---- | Subtract two vectors element-wise. --minusInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#-minusInt16X8# = minusInt16X8#---- | Subtract two vectors element-wise. --minusInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#-minusInt32X4# = minusInt32X4#---- | Subtract two vectors element-wise. --minusInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#-minusInt64X2# = minusInt64X2#---- | Subtract two vectors element-wise. --minusInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#-minusInt8X32# = minusInt8X32#---- | Subtract two vectors element-wise. --minusInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#-minusInt16X16# = minusInt16X16#---- | Subtract two vectors element-wise. --minusInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#-minusInt32X8# = minusInt32X8#---- | Subtract two vectors element-wise. --minusInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#-minusInt64X4# = minusInt64X4#---- | Subtract two vectors element-wise. --minusInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#-minusInt8X64# = minusInt8X64#---- | Subtract two vectors element-wise. --minusInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#-minusInt16X32# = minusInt16X32#---- | Subtract two vectors element-wise. --minusInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#-minusInt32X16# = minusInt32X16#---- | Subtract two vectors element-wise. --minusInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#-minusInt64X8# = minusInt64X8#---- | Subtract two vectors element-wise. --minusWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#-minusWord8X16# = minusWord8X16#---- | Subtract two vectors element-wise. --minusWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#-minusWord16X8# = minusWord16X8#---- | Subtract two vectors element-wise. --minusWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#-minusWord32X4# = minusWord32X4#---- | Subtract two vectors element-wise. --minusWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#-minusWord64X2# = minusWord64X2#---- | Subtract two vectors element-wise. --minusWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#-minusWord8X32# = minusWord8X32#---- | Subtract two vectors element-wise. --minusWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#-minusWord16X16# = minusWord16X16#---- | Subtract two vectors element-wise. --minusWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#-minusWord32X8# = minusWord32X8#---- | Subtract two vectors element-wise. --minusWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#-minusWord64X4# = minusWord64X4#---- | Subtract two vectors element-wise. --minusWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#-minusWord8X64# = minusWord8X64#---- | Subtract two vectors element-wise. --minusWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#-minusWord16X32# = minusWord16X32#---- | Subtract two vectors element-wise. --minusWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#-minusWord32X16# = minusWord32X16#---- | Subtract two vectors element-wise. --minusWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#-minusWord64X8# = minusWord64X8#---- | Subtract two vectors element-wise. --minusFloatX4# :: FloatX4# -> FloatX4# -> FloatX4#-minusFloatX4# = minusFloatX4#---- | Subtract two vectors element-wise. --minusDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2#-minusDoubleX2# = minusDoubleX2#---- | Subtract two vectors element-wise. --minusFloatX8# :: FloatX8# -> FloatX8# -> FloatX8#-minusFloatX8# = minusFloatX8#---- | Subtract two vectors element-wise. --minusDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4#-minusDoubleX4# = minusDoubleX4#---- | Subtract two vectors element-wise. --minusFloatX16# :: FloatX16# -> FloatX16# -> FloatX16#-minusFloatX16# = minusFloatX16#---- | Subtract two vectors element-wise. --minusDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8#-minusDoubleX8# = minusDoubleX8#---- | Multiply two vectors element-wise. --timesInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#-timesInt8X16# = timesInt8X16#---- | Multiply two vectors element-wise. --timesInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#-timesInt16X8# = timesInt16X8#---- | Multiply two vectors element-wise. --timesInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#-timesInt32X4# = timesInt32X4#---- | Multiply two vectors element-wise. --timesInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#-timesInt64X2# = timesInt64X2#---- | Multiply two vectors element-wise. --timesInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#-timesInt8X32# = timesInt8X32#---- | Multiply two vectors element-wise. --timesInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#-timesInt16X16# = timesInt16X16#---- | Multiply two vectors element-wise. --timesInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#-timesInt32X8# = timesInt32X8#---- | Multiply two vectors element-wise. --timesInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#-timesInt64X4# = timesInt64X4#---- | Multiply two vectors element-wise. --timesInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#-timesInt8X64# = timesInt8X64#---- | Multiply two vectors element-wise. --timesInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#-timesInt16X32# = timesInt16X32#---- | Multiply two vectors element-wise. --timesInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#-timesInt32X16# = timesInt32X16#---- | Multiply two vectors element-wise. --timesInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#-timesInt64X8# = timesInt64X8#---- | Multiply two vectors element-wise. --timesWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#-timesWord8X16# = timesWord8X16#---- | Multiply two vectors element-wise. --timesWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#-timesWord16X8# = timesWord16X8#---- | Multiply two vectors element-wise. --timesWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#-timesWord32X4# = timesWord32X4#---- | Multiply two vectors element-wise. --timesWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#-timesWord64X2# = timesWord64X2#---- | Multiply two vectors element-wise. --timesWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#-timesWord8X32# = timesWord8X32#---- | Multiply two vectors element-wise. --timesWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#-timesWord16X16# = timesWord16X16#---- | Multiply two vectors element-wise. --timesWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#-timesWord32X8# = timesWord32X8#---- | Multiply two vectors element-wise. --timesWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#-timesWord64X4# = timesWord64X4#---- | Multiply two vectors element-wise. --timesWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#-timesWord8X64# = timesWord8X64#---- | Multiply two vectors element-wise. --timesWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#-timesWord16X32# = timesWord16X32#---- | Multiply two vectors element-wise. --timesWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#-timesWord32X16# = timesWord32X16#---- | Multiply two vectors element-wise. --timesWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#-timesWord64X8# = timesWord64X8#---- | Multiply two vectors element-wise. --timesFloatX4# :: FloatX4# -> FloatX4# -> FloatX4#-timesFloatX4# = timesFloatX4#---- | Multiply two vectors element-wise. --timesDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2#-timesDoubleX2# = timesDoubleX2#---- | Multiply two vectors element-wise. --timesFloatX8# :: FloatX8# -> FloatX8# -> FloatX8#-timesFloatX8# = timesFloatX8#---- | Multiply two vectors element-wise. --timesDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4#-timesDoubleX4# = timesDoubleX4#---- | Multiply two vectors element-wise. --timesFloatX16# :: FloatX16# -> FloatX16# -> FloatX16#-timesFloatX16# = timesFloatX16#---- | Multiply two vectors element-wise. --timesDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8#-timesDoubleX8# = timesDoubleX8#---- | Divide two vectors element-wise. --divideFloatX4# :: FloatX4# -> FloatX4# -> FloatX4#-divideFloatX4# = divideFloatX4#---- | Divide two vectors element-wise. --divideDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2#-divideDoubleX2# = divideDoubleX2#---- | Divide two vectors element-wise. --divideFloatX8# :: FloatX8# -> FloatX8# -> FloatX8#-divideFloatX8# = divideFloatX8#---- | Divide two vectors element-wise. --divideDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4#-divideDoubleX4# = divideDoubleX4#---- | Divide two vectors element-wise. --divideFloatX16# :: FloatX16# -> FloatX16# -> FloatX16#-divideFloatX16# = divideFloatX16#---- | Divide two vectors element-wise. --divideDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8#-divideDoubleX8# = divideDoubleX8#---- | Rounds towards zero element-wise. --quotInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#-quotInt8X16# = quotInt8X16#---- | Rounds towards zero element-wise. --quotInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#-quotInt16X8# = quotInt16X8#---- | Rounds towards zero element-wise. --quotInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#-quotInt32X4# = quotInt32X4#---- | Rounds towards zero element-wise. --quotInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#-quotInt64X2# = quotInt64X2#---- | Rounds towards zero element-wise. --quotInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#-quotInt8X32# = quotInt8X32#---- | Rounds towards zero element-wise. --quotInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#-quotInt16X16# = quotInt16X16#---- | Rounds towards zero element-wise. --quotInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#-quotInt32X8# = quotInt32X8#---- | Rounds towards zero element-wise. --quotInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#-quotInt64X4# = quotInt64X4#---- | Rounds towards zero element-wise. --quotInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#-quotInt8X64# = quotInt8X64#---- | Rounds towards zero element-wise. --quotInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#-quotInt16X32# = quotInt16X32#---- | Rounds towards zero element-wise. --quotInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#-quotInt32X16# = quotInt32X16#---- | Rounds towards zero element-wise. --quotInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#-quotInt64X8# = quotInt64X8#---- | Rounds towards zero element-wise. --quotWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#-quotWord8X16# = quotWord8X16#---- | Rounds towards zero element-wise. --quotWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#-quotWord16X8# = quotWord16X8#---- | Rounds towards zero element-wise. --quotWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#-quotWord32X4# = quotWord32X4#---- | Rounds towards zero element-wise. --quotWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#-quotWord64X2# = quotWord64X2#---- | Rounds towards zero element-wise. --quotWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#-quotWord8X32# = quotWord8X32#---- | Rounds towards zero element-wise. --quotWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#-quotWord16X16# = quotWord16X16#---- | Rounds towards zero element-wise. --quotWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#-quotWord32X8# = quotWord32X8#---- | Rounds towards zero element-wise. --quotWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#-quotWord64X4# = quotWord64X4#---- | Rounds towards zero element-wise. --quotWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#-quotWord8X64# = quotWord8X64#---- | Rounds towards zero element-wise. --quotWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#-quotWord16X32# = quotWord16X32#---- | Rounds towards zero element-wise. --quotWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#-quotWord32X16# = quotWord32X16#---- | Rounds towards zero element-wise. --quotWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#-quotWord64X8# = quotWord64X8#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#-remInt8X16# = remInt8X16#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#-remInt16X8# = remInt16X8#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#-remInt32X4# = remInt32X4#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#-remInt64X2# = remInt64X2#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#-remInt8X32# = remInt8X32#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#-remInt16X16# = remInt16X16#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#-remInt32X8# = remInt32X8#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#-remInt64X4# = remInt64X4#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#-remInt8X64# = remInt8X64#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#-remInt16X32# = remInt16X32#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#-remInt32X16# = remInt32X16#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#-remInt64X8# = remInt64X8#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#-remWord8X16# = remWord8X16#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#-remWord16X8# = remWord16X8#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#-remWord32X4# = remWord32X4#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#-remWord64X2# = remWord64X2#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#-remWord8X32# = remWord8X32#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#-remWord16X16# = remWord16X16#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#-remWord32X8# = remWord32X8#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#-remWord64X4# = remWord64X4#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#-remWord8X64# = remWord8X64#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#-remWord16X32# = remWord16X32#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#-remWord32X16# = remWord32X16#---- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. --remWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#-remWord64X8# = remWord64X8#---- | Negate element-wise. --negateInt8X16# :: Int8X16# -> Int8X16#-negateInt8X16# = negateInt8X16#---- | Negate element-wise. --negateInt16X8# :: Int16X8# -> Int16X8#-negateInt16X8# = negateInt16X8#---- | Negate element-wise. --negateInt32X4# :: Int32X4# -> Int32X4#-negateInt32X4# = negateInt32X4#---- | Negate element-wise. --negateInt64X2# :: Int64X2# -> Int64X2#-negateInt64X2# = negateInt64X2#---- | Negate element-wise. --negateInt8X32# :: Int8X32# -> Int8X32#-negateInt8X32# = negateInt8X32#---- | Negate element-wise. --negateInt16X16# :: Int16X16# -> Int16X16#-negateInt16X16# = negateInt16X16#---- | Negate element-wise. --negateInt32X8# :: Int32X8# -> Int32X8#-negateInt32X8# = negateInt32X8#---- | Negate element-wise. --negateInt64X4# :: Int64X4# -> Int64X4#-negateInt64X4# = negateInt64X4#---- | Negate element-wise. --negateInt8X64# :: Int8X64# -> Int8X64#-negateInt8X64# = negateInt8X64#---- | Negate element-wise. --negateInt16X32# :: Int16X32# -> Int16X32#-negateInt16X32# = negateInt16X32#---- | Negate element-wise. --negateInt32X16# :: Int32X16# -> Int32X16#-negateInt32X16# = negateInt32X16#---- | Negate element-wise. --negateInt64X8# :: Int64X8# -> Int64X8#-negateInt64X8# = negateInt64X8#---- | Negate element-wise. --negateFloatX4# :: FloatX4# -> FloatX4#-negateFloatX4# = negateFloatX4#---- | Negate element-wise. --negateDoubleX2# :: DoubleX2# -> DoubleX2#-negateDoubleX2# = negateDoubleX2#---- | Negate element-wise. --negateFloatX8# :: FloatX8# -> FloatX8#-negateFloatX8# = negateFloatX8#---- | Negate element-wise. --negateDoubleX4# :: DoubleX4# -> DoubleX4#-negateDoubleX4# = negateDoubleX4#---- | Negate element-wise. --negateFloatX16# :: FloatX16# -> FloatX16#-negateFloatX16# = negateFloatX16#---- | Negate element-wise. --negateDoubleX8# :: DoubleX8# -> DoubleX8#-negateDoubleX8# = negateDoubleX8#---- | Read a vector from specified index of immutable array. --indexInt8X16Array# :: ByteArray# -> Int# -> Int8X16#-indexInt8X16Array# = indexInt8X16Array#---- | Read a vector from specified index of immutable array. --indexInt16X8Array# :: ByteArray# -> Int# -> Int16X8#-indexInt16X8Array# = indexInt16X8Array#---- | Read a vector from specified index of immutable array. --indexInt32X4Array# :: ByteArray# -> Int# -> Int32X4#-indexInt32X4Array# = indexInt32X4Array#---- | Read a vector from specified index of immutable array. --indexInt64X2Array# :: ByteArray# -> Int# -> Int64X2#-indexInt64X2Array# = indexInt64X2Array#---- | Read a vector from specified index of immutable array. --indexInt8X32Array# :: ByteArray# -> Int# -> Int8X32#-indexInt8X32Array# = indexInt8X32Array#---- | Read a vector from specified index of immutable array. --indexInt16X16Array# :: ByteArray# -> Int# -> Int16X16#-indexInt16X16Array# = indexInt16X16Array#---- | Read a vector from specified index of immutable array. --indexInt32X8Array# :: ByteArray# -> Int# -> Int32X8#-indexInt32X8Array# = indexInt32X8Array#---- | Read a vector from specified index of immutable array. --indexInt64X4Array# :: ByteArray# -> Int# -> Int64X4#-indexInt64X4Array# = indexInt64X4Array#---- | Read a vector from specified index of immutable array. --indexInt8X64Array# :: ByteArray# -> Int# -> Int8X64#-indexInt8X64Array# = indexInt8X64Array#---- | Read a vector from specified index of immutable array. --indexInt16X32Array# :: ByteArray# -> Int# -> Int16X32#-indexInt16X32Array# = indexInt16X32Array#---- | Read a vector from specified index of immutable array. --indexInt32X16Array# :: ByteArray# -> Int# -> Int32X16#-indexInt32X16Array# = indexInt32X16Array#---- | Read a vector from specified index of immutable array. --indexInt64X8Array# :: ByteArray# -> Int# -> Int64X8#-indexInt64X8Array# = indexInt64X8Array#---- | Read a vector from specified index of immutable array. --indexWord8X16Array# :: ByteArray# -> Int# -> Word8X16#-indexWord8X16Array# = indexWord8X16Array#---- | Read a vector from specified index of immutable array. --indexWord16X8Array# :: ByteArray# -> Int# -> Word16X8#-indexWord16X8Array# = indexWord16X8Array#---- | Read a vector from specified index of immutable array. --indexWord32X4Array# :: ByteArray# -> Int# -> Word32X4#-indexWord32X4Array# = indexWord32X4Array#---- | Read a vector from specified index of immutable array. --indexWord64X2Array# :: ByteArray# -> Int# -> Word64X2#-indexWord64X2Array# = indexWord64X2Array#---- | Read a vector from specified index of immutable array. --indexWord8X32Array# :: ByteArray# -> Int# -> Word8X32#-indexWord8X32Array# = indexWord8X32Array#---- | Read a vector from specified index of immutable array. --indexWord16X16Array# :: ByteArray# -> Int# -> Word16X16#-indexWord16X16Array# = indexWord16X16Array#---- | Read a vector from specified index of immutable array. --indexWord32X8Array# :: ByteArray# -> Int# -> Word32X8#-indexWord32X8Array# = indexWord32X8Array#---- | Read a vector from specified index of immutable array. --indexWord64X4Array# :: ByteArray# -> Int# -> Word64X4#-indexWord64X4Array# = indexWord64X4Array#---- | Read a vector from specified index of immutable array. --indexWord8X64Array# :: ByteArray# -> Int# -> Word8X64#-indexWord8X64Array# = indexWord8X64Array#---- | Read a vector from specified index of immutable array. --indexWord16X32Array# :: ByteArray# -> Int# -> Word16X32#-indexWord16X32Array# = indexWord16X32Array#---- | Read a vector from specified index of immutable array. --indexWord32X16Array# :: ByteArray# -> Int# -> Word32X16#-indexWord32X16Array# = indexWord32X16Array#---- | Read a vector from specified index of immutable array. --indexWord64X8Array# :: ByteArray# -> Int# -> Word64X8#-indexWord64X8Array# = indexWord64X8Array#---- | Read a vector from specified index of immutable array. --indexFloatX4Array# :: ByteArray# -> Int# -> FloatX4#-indexFloatX4Array# = indexFloatX4Array#---- | Read a vector from specified index of immutable array. --indexDoubleX2Array# :: ByteArray# -> Int# -> DoubleX2#-indexDoubleX2Array# = indexDoubleX2Array#---- | Read a vector from specified index of immutable array. --indexFloatX8Array# :: ByteArray# -> Int# -> FloatX8#-indexFloatX8Array# = indexFloatX8Array#---- | Read a vector from specified index of immutable array. --indexDoubleX4Array# :: ByteArray# -> Int# -> DoubleX4#-indexDoubleX4Array# = indexDoubleX4Array#---- | Read a vector from specified index of immutable array. --indexFloatX16Array# :: ByteArray# -> Int# -> FloatX16#-indexFloatX16Array# = indexFloatX16Array#---- | Read a vector from specified index of immutable array. --indexDoubleX8Array# :: ByteArray# -> Int# -> DoubleX8#-indexDoubleX8Array# = indexDoubleX8Array#---- | Read a vector from specified index of mutable array. --readInt8X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X16# #)-readInt8X16Array# = readInt8X16Array#---- | Read a vector from specified index of mutable array. --readInt16X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X8# #)-readInt16X8Array# = readInt16X8Array#---- | Read a vector from specified index of mutable array. --readInt32X4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X4# #)-readInt32X4Array# = readInt32X4Array#---- | Read a vector from specified index of mutable array. --readInt64X2Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X2# #)-readInt64X2Array# = readInt64X2Array#---- | Read a vector from specified index of mutable array. --readInt8X32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X32# #)-readInt8X32Array# = readInt8X32Array#---- | Read a vector from specified index of mutable array. --readInt16X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X16# #)-readInt16X16Array# = readInt16X16Array#---- | Read a vector from specified index of mutable array. --readInt32X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X8# #)-readInt32X8Array# = readInt32X8Array#---- | Read a vector from specified index of mutable array. --readInt64X4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X4# #)-readInt64X4Array# = readInt64X4Array#---- | Read a vector from specified index of mutable array. --readInt8X64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X64# #)-readInt8X64Array# = readInt8X64Array#---- | Read a vector from specified index of mutable array. --readInt16X32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X32# #)-readInt16X32Array# = readInt16X32Array#---- | Read a vector from specified index of mutable array. --readInt32X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X16# #)-readInt32X16Array# = readInt32X16Array#---- | Read a vector from specified index of mutable array. --readInt64X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X8# #)-readInt64X8Array# = readInt64X8Array#---- | Read a vector from specified index of mutable array. --readWord8X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X16# #)-readWord8X16Array# = readWord8X16Array#---- | Read a vector from specified index of mutable array. --readWord16X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X8# #)-readWord16X8Array# = readWord16X8Array#---- | Read a vector from specified index of mutable array. --readWord32X4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X4# #)-readWord32X4Array# = readWord32X4Array#---- | Read a vector from specified index of mutable array. --readWord64X2Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X2# #)-readWord64X2Array# = readWord64X2Array#---- | Read a vector from specified index of mutable array. --readWord8X32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X32# #)-readWord8X32Array# = readWord8X32Array#---- | Read a vector from specified index of mutable array. --readWord16X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X16# #)-readWord16X16Array# = readWord16X16Array#---- | Read a vector from specified index of mutable array. --readWord32X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X8# #)-readWord32X8Array# = readWord32X8Array#---- | Read a vector from specified index of mutable array. --readWord64X4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X4# #)-readWord64X4Array# = readWord64X4Array#---- | Read a vector from specified index of mutable array. --readWord8X64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X64# #)-readWord8X64Array# = readWord8X64Array#---- | Read a vector from specified index of mutable array. --readWord16X32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X32# #)-readWord16X32Array# = readWord16X32Array#---- | Read a vector from specified index of mutable array. --readWord32X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X16# #)-readWord32X16Array# = readWord32X16Array#---- | Read a vector from specified index of mutable array. --readWord64X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X8# #)-readWord64X8Array# = readWord64X8Array#---- | Read a vector from specified index of mutable array. --readFloatX4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX4# #)-readFloatX4Array# = readFloatX4Array#---- | Read a vector from specified index of mutable array. --readDoubleX2Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX2# #)-readDoubleX2Array# = readDoubleX2Array#---- | Read a vector from specified index of mutable array. --readFloatX8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX8# #)-readFloatX8Array# = readFloatX8Array#---- | Read a vector from specified index of mutable array. --readDoubleX4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX4# #)-readDoubleX4Array# = readDoubleX4Array#---- | Read a vector from specified index of mutable array. --readFloatX16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX16# #)-readFloatX16Array# = readFloatX16Array#---- | Read a vector from specified index of mutable array. --readDoubleX8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX8# #)-readDoubleX8Array# = readDoubleX8Array#---- | Write a vector to specified index of mutable array. --writeInt8X16Array# :: MutableByteArray# s -> Int# -> Int8X16# -> State# s -> State# s-writeInt8X16Array# = writeInt8X16Array#---- | Write a vector to specified index of mutable array. --writeInt16X8Array# :: MutableByteArray# s -> Int# -> Int16X8# -> State# s -> State# s-writeInt16X8Array# = writeInt16X8Array#---- | Write a vector to specified index of mutable array. --writeInt32X4Array# :: MutableByteArray# s -> Int# -> Int32X4# -> State# s -> State# s-writeInt32X4Array# = writeInt32X4Array#---- | Write a vector to specified index of mutable array. --writeInt64X2Array# :: MutableByteArray# s -> Int# -> Int64X2# -> State# s -> State# s-writeInt64X2Array# = writeInt64X2Array#---- | Write a vector to specified index of mutable array. --writeInt8X32Array# :: MutableByteArray# s -> Int# -> Int8X32# -> State# s -> State# s-writeInt8X32Array# = writeInt8X32Array#---- | Write a vector to specified index of mutable array. --writeInt16X16Array# :: MutableByteArray# s -> Int# -> Int16X16# -> State# s -> State# s-writeInt16X16Array# = writeInt16X16Array#---- | Write a vector to specified index of mutable array. --writeInt32X8Array# :: MutableByteArray# s -> Int# -> Int32X8# -> State# s -> State# s-writeInt32X8Array# = writeInt32X8Array#---- | Write a vector to specified index of mutable array. --writeInt64X4Array# :: MutableByteArray# s -> Int# -> Int64X4# -> State# s -> State# s-writeInt64X4Array# = writeInt64X4Array#---- | Write a vector to specified index of mutable array. --writeInt8X64Array# :: MutableByteArray# s -> Int# -> Int8X64# -> State# s -> State# s-writeInt8X64Array# = writeInt8X64Array#---- | Write a vector to specified index of mutable array. --writeInt16X32Array# :: MutableByteArray# s -> Int# -> Int16X32# -> State# s -> State# s-writeInt16X32Array# = writeInt16X32Array#---- | Write a vector to specified index of mutable array. --writeInt32X16Array# :: MutableByteArray# s -> Int# -> Int32X16# -> State# s -> State# s-writeInt32X16Array# = writeInt32X16Array#---- | Write a vector to specified index of mutable array. --writeInt64X8Array# :: MutableByteArray# s -> Int# -> Int64X8# -> State# s -> State# s-writeInt64X8Array# = writeInt64X8Array#---- | Write a vector to specified index of mutable array. --writeWord8X16Array# :: MutableByteArray# s -> Int# -> Word8X16# -> State# s -> State# s-writeWord8X16Array# = writeWord8X16Array#---- | Write a vector to specified index of mutable array. --writeWord16X8Array# :: MutableByteArray# s -> Int# -> Word16X8# -> State# s -> State# s-writeWord16X8Array# = writeWord16X8Array#---- | Write a vector to specified index of mutable array. --writeWord32X4Array# :: MutableByteArray# s -> Int# -> Word32X4# -> State# s -> State# s-writeWord32X4Array# = writeWord32X4Array#---- | Write a vector to specified index of mutable array. --writeWord64X2Array# :: MutableByteArray# s -> Int# -> Word64X2# -> State# s -> State# s-writeWord64X2Array# = writeWord64X2Array#---- | Write a vector to specified index of mutable array. --writeWord8X32Array# :: MutableByteArray# s -> Int# -> Word8X32# -> State# s -> State# s-writeWord8X32Array# = writeWord8X32Array#---- | Write a vector to specified index of mutable array. --writeWord16X16Array# :: MutableByteArray# s -> Int# -> Word16X16# -> State# s -> State# s-writeWord16X16Array# = writeWord16X16Array#---- | Write a vector to specified index of mutable array. --writeWord32X8Array# :: MutableByteArray# s -> Int# -> Word32X8# -> State# s -> State# s-writeWord32X8Array# = writeWord32X8Array#---- | Write a vector to specified index of mutable array. --writeWord64X4Array# :: MutableByteArray# s -> Int# -> Word64X4# -> State# s -> State# s-writeWord64X4Array# = writeWord64X4Array#---- | Write a vector to specified index of mutable array. --writeWord8X64Array# :: MutableByteArray# s -> Int# -> Word8X64# -> State# s -> State# s-writeWord8X64Array# = writeWord8X64Array#---- | Write a vector to specified index of mutable array. --writeWord16X32Array# :: MutableByteArray# s -> Int# -> Word16X32# -> State# s -> State# s-writeWord16X32Array# = writeWord16X32Array#---- | Write a vector to specified index of mutable array. --writeWord32X16Array# :: MutableByteArray# s -> Int# -> Word32X16# -> State# s -> State# s-writeWord32X16Array# = writeWord32X16Array#---- | Write a vector to specified index of mutable array. --writeWord64X8Array# :: MutableByteArray# s -> Int# -> Word64X8# -> State# s -> State# s-writeWord64X8Array# = writeWord64X8Array#---- | Write a vector to specified index of mutable array. --writeFloatX4Array# :: MutableByteArray# s -> Int# -> FloatX4# -> State# s -> State# s-writeFloatX4Array# = writeFloatX4Array#---- | Write a vector to specified index of mutable array. --writeDoubleX2Array# :: MutableByteArray# s -> Int# -> DoubleX2# -> State# s -> State# s-writeDoubleX2Array# = writeDoubleX2Array#---- | Write a vector to specified index of mutable array. --writeFloatX8Array# :: MutableByteArray# s -> Int# -> FloatX8# -> State# s -> State# s-writeFloatX8Array# = writeFloatX8Array#---- | Write a vector to specified index of mutable array. --writeDoubleX4Array# :: MutableByteArray# s -> Int# -> DoubleX4# -> State# s -> State# s-writeDoubleX4Array# = writeDoubleX4Array#---- | Write a vector to specified index of mutable array. --writeFloatX16Array# :: MutableByteArray# s -> Int# -> FloatX16# -> State# s -> State# s-writeFloatX16Array# = writeFloatX16Array#---- | Write a vector to specified index of mutable array. --writeDoubleX8Array# :: MutableByteArray# s -> Int# -> DoubleX8# -> State# s -> State# s-writeDoubleX8Array# = writeDoubleX8Array#---- | Reads vector; offset in bytes. --indexInt8X16OffAddr# :: Addr# -> Int# -> Int8X16#-indexInt8X16OffAddr# = indexInt8X16OffAddr#---- | Reads vector; offset in bytes. --indexInt16X8OffAddr# :: Addr# -> Int# -> Int16X8#-indexInt16X8OffAddr# = indexInt16X8OffAddr#---- | Reads vector; offset in bytes. --indexInt32X4OffAddr# :: Addr# -> Int# -> Int32X4#-indexInt32X4OffAddr# = indexInt32X4OffAddr#---- | Reads vector; offset in bytes. --indexInt64X2OffAddr# :: Addr# -> Int# -> Int64X2#-indexInt64X2OffAddr# = indexInt64X2OffAddr#---- | Reads vector; offset in bytes. --indexInt8X32OffAddr# :: Addr# -> Int# -> Int8X32#-indexInt8X32OffAddr# = indexInt8X32OffAddr#---- | Reads vector; offset in bytes. --indexInt16X16OffAddr# :: Addr# -> Int# -> Int16X16#-indexInt16X16OffAddr# = indexInt16X16OffAddr#---- | Reads vector; offset in bytes. --indexInt32X8OffAddr# :: Addr# -> Int# -> Int32X8#-indexInt32X8OffAddr# = indexInt32X8OffAddr#---- | Reads vector; offset in bytes. --indexInt64X4OffAddr# :: Addr# -> Int# -> Int64X4#-indexInt64X4OffAddr# = indexInt64X4OffAddr#---- | Reads vector; offset in bytes. --indexInt8X64OffAddr# :: Addr# -> Int# -> Int8X64#-indexInt8X64OffAddr# = indexInt8X64OffAddr#---- | Reads vector; offset in bytes. --indexInt16X32OffAddr# :: Addr# -> Int# -> Int16X32#-indexInt16X32OffAddr# = indexInt16X32OffAddr#---- | Reads vector; offset in bytes. --indexInt32X16OffAddr# :: Addr# -> Int# -> Int32X16#-indexInt32X16OffAddr# = indexInt32X16OffAddr#---- | Reads vector; offset in bytes. --indexInt64X8OffAddr# :: Addr# -> Int# -> Int64X8#-indexInt64X8OffAddr# = indexInt64X8OffAddr#---- | Reads vector; offset in bytes. --indexWord8X16OffAddr# :: Addr# -> Int# -> Word8X16#-indexWord8X16OffAddr# = indexWord8X16OffAddr#---- | Reads vector; offset in bytes. --indexWord16X8OffAddr# :: Addr# -> Int# -> Word16X8#-indexWord16X8OffAddr# = indexWord16X8OffAddr#---- | Reads vector; offset in bytes. --indexWord32X4OffAddr# :: Addr# -> Int# -> Word32X4#-indexWord32X4OffAddr# = indexWord32X4OffAddr#---- | Reads vector; offset in bytes. --indexWord64X2OffAddr# :: Addr# -> Int# -> Word64X2#-indexWord64X2OffAddr# = indexWord64X2OffAddr#---- | Reads vector; offset in bytes. --indexWord8X32OffAddr# :: Addr# -> Int# -> Word8X32#-indexWord8X32OffAddr# = indexWord8X32OffAddr#---- | Reads vector; offset in bytes. --indexWord16X16OffAddr# :: Addr# -> Int# -> Word16X16#-indexWord16X16OffAddr# = indexWord16X16OffAddr#---- | Reads vector; offset in bytes. --indexWord32X8OffAddr# :: Addr# -> Int# -> Word32X8#-indexWord32X8OffAddr# = indexWord32X8OffAddr#---- | Reads vector; offset in bytes. --indexWord64X4OffAddr# :: Addr# -> Int# -> Word64X4#-indexWord64X4OffAddr# = indexWord64X4OffAddr#---- | Reads vector; offset in bytes. --indexWord8X64OffAddr# :: Addr# -> Int# -> Word8X64#-indexWord8X64OffAddr# = indexWord8X64OffAddr#---- | Reads vector; offset in bytes. --indexWord16X32OffAddr# :: Addr# -> Int# -> Word16X32#-indexWord16X32OffAddr# = indexWord16X32OffAddr#---- | Reads vector; offset in bytes. --indexWord32X16OffAddr# :: Addr# -> Int# -> Word32X16#-indexWord32X16OffAddr# = indexWord32X16OffAddr#---- | Reads vector; offset in bytes. --indexWord64X8OffAddr# :: Addr# -> Int# -> Word64X8#-indexWord64X8OffAddr# = indexWord64X8OffAddr#---- | Reads vector; offset in bytes. --indexFloatX4OffAddr# :: Addr# -> Int# -> FloatX4#-indexFloatX4OffAddr# = indexFloatX4OffAddr#---- | Reads vector; offset in bytes. --indexDoubleX2OffAddr# :: Addr# -> Int# -> DoubleX2#-indexDoubleX2OffAddr# = indexDoubleX2OffAddr#---- | Reads vector; offset in bytes. --indexFloatX8OffAddr# :: Addr# -> Int# -> FloatX8#-indexFloatX8OffAddr# = indexFloatX8OffAddr#---- | Reads vector; offset in bytes. --indexDoubleX4OffAddr# :: Addr# -> Int# -> DoubleX4#-indexDoubleX4OffAddr# = indexDoubleX4OffAddr#---- | Reads vector; offset in bytes. --indexFloatX16OffAddr# :: Addr# -> Int# -> FloatX16#-indexFloatX16OffAddr# = indexFloatX16OffAddr#---- | Reads vector; offset in bytes. --indexDoubleX8OffAddr# :: Addr# -> Int# -> DoubleX8#-indexDoubleX8OffAddr# = indexDoubleX8OffAddr#---- | Reads vector; offset in bytes. --readInt8X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int8X16# #)-readInt8X16OffAddr# = readInt8X16OffAddr#---- | Reads vector; offset in bytes. --readInt16X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int16X8# #)-readInt16X8OffAddr# = readInt16X8OffAddr#---- | Reads vector; offset in bytes. --readInt32X4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int32X4# #)-readInt32X4OffAddr# = readInt32X4OffAddr#---- | Reads vector; offset in bytes. --readInt64X2OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int64X2# #)-readInt64X2OffAddr# = readInt64X2OffAddr#---- | Reads vector; offset in bytes. --readInt8X32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int8X32# #)-readInt8X32OffAddr# = readInt8X32OffAddr#---- | Reads vector; offset in bytes. --readInt16X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int16X16# #)-readInt16X16OffAddr# = readInt16X16OffAddr#---- | Reads vector; offset in bytes. --readInt32X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int32X8# #)-readInt32X8OffAddr# = readInt32X8OffAddr#---- | Reads vector; offset in bytes. --readInt64X4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int64X4# #)-readInt64X4OffAddr# = readInt64X4OffAddr#---- | Reads vector; offset in bytes. --readInt8X64OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int8X64# #)-readInt8X64OffAddr# = readInt8X64OffAddr#---- | Reads vector; offset in bytes. --readInt16X32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int16X32# #)-readInt16X32OffAddr# = readInt16X32OffAddr#---- | Reads vector; offset in bytes. --readInt32X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int32X16# #)-readInt32X16OffAddr# = readInt32X16OffAddr#---- | Reads vector; offset in bytes. --readInt64X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int64X8# #)-readInt64X8OffAddr# = readInt64X8OffAddr#---- | Reads vector; offset in bytes. --readWord8X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word8X16# #)-readWord8X16OffAddr# = readWord8X16OffAddr#---- | Reads vector; offset in bytes. --readWord16X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word16X8# #)-readWord16X8OffAddr# = readWord16X8OffAddr#---- | Reads vector; offset in bytes. --readWord32X4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word32X4# #)-readWord32X4OffAddr# = readWord32X4OffAddr#---- | Reads vector; offset in bytes. --readWord64X2OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word64X2# #)-readWord64X2OffAddr# = readWord64X2OffAddr#---- | Reads vector; offset in bytes. --readWord8X32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word8X32# #)-readWord8X32OffAddr# = readWord8X32OffAddr#---- | Reads vector; offset in bytes. --readWord16X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word16X16# #)-readWord16X16OffAddr# = readWord16X16OffAddr#---- | Reads vector; offset in bytes. --readWord32X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word32X8# #)-readWord32X8OffAddr# = readWord32X8OffAddr#---- | Reads vector; offset in bytes. --readWord64X4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word64X4# #)-readWord64X4OffAddr# = readWord64X4OffAddr#---- | Reads vector; offset in bytes. --readWord8X64OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word8X64# #)-readWord8X64OffAddr# = readWord8X64OffAddr#---- | Reads vector; offset in bytes. --readWord16X32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word16X32# #)-readWord16X32OffAddr# = readWord16X32OffAddr#---- | Reads vector; offset in bytes. --readWord32X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word32X16# #)-readWord32X16OffAddr# = readWord32X16OffAddr#---- | Reads vector; offset in bytes. --readWord64X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word64X8# #)-readWord64X8OffAddr# = readWord64X8OffAddr#---- | Reads vector; offset in bytes. --readFloatX4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,FloatX4# #)-readFloatX4OffAddr# = readFloatX4OffAddr#---- | Reads vector; offset in bytes. --readDoubleX2OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX2# #)-readDoubleX2OffAddr# = readDoubleX2OffAddr#---- | Reads vector; offset in bytes. --readFloatX8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,FloatX8# #)-readFloatX8OffAddr# = readFloatX8OffAddr#---- | Reads vector; offset in bytes. --readDoubleX4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX4# #)-readDoubleX4OffAddr# = readDoubleX4OffAddr#---- | Reads vector; offset in bytes. --readFloatX16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,FloatX16# #)-readFloatX16OffAddr# = readFloatX16OffAddr#---- | Reads vector; offset in bytes. --readDoubleX8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX8# #)-readDoubleX8OffAddr# = readDoubleX8OffAddr#---- | Write vector; offset in bytes. --writeInt8X16OffAddr# :: Addr# -> Int# -> Int8X16# -> State# s -> State# s-writeInt8X16OffAddr# = writeInt8X16OffAddr#---- | Write vector; offset in bytes. --writeInt16X8OffAddr# :: Addr# -> Int# -> Int16X8# -> State# s -> State# s-writeInt16X8OffAddr# = writeInt16X8OffAddr#---- | Write vector; offset in bytes. --writeInt32X4OffAddr# :: Addr# -> Int# -> Int32X4# -> State# s -> State# s-writeInt32X4OffAddr# = writeInt32X4OffAddr#---- | Write vector; offset in bytes. --writeInt64X2OffAddr# :: Addr# -> Int# -> Int64X2# -> State# s -> State# s-writeInt64X2OffAddr# = writeInt64X2OffAddr#---- | Write vector; offset in bytes. --writeInt8X32OffAddr# :: Addr# -> Int# -> Int8X32# -> State# s -> State# s-writeInt8X32OffAddr# = writeInt8X32OffAddr#---- | Write vector; offset in bytes. --writeInt16X16OffAddr# :: Addr# -> Int# -> Int16X16# -> State# s -> State# s-writeInt16X16OffAddr# = writeInt16X16OffAddr#---- | Write vector; offset in bytes. --writeInt32X8OffAddr# :: Addr# -> Int# -> Int32X8# -> State# s -> State# s-writeInt32X8OffAddr# = writeInt32X8OffAddr#---- | Write vector; offset in bytes. --writeInt64X4OffAddr# :: Addr# -> Int# -> Int64X4# -> State# s -> State# s-writeInt64X4OffAddr# = writeInt64X4OffAddr#---- | Write vector; offset in bytes. --writeInt8X64OffAddr# :: Addr# -> Int# -> Int8X64# -> State# s -> State# s-writeInt8X64OffAddr# = writeInt8X64OffAddr#---- | Write vector; offset in bytes. --writeInt16X32OffAddr# :: Addr# -> Int# -> Int16X32# -> State# s -> State# s-writeInt16X32OffAddr# = writeInt16X32OffAddr#---- | Write vector; offset in bytes. --writeInt32X16OffAddr# :: Addr# -> Int# -> Int32X16# -> State# s -> State# s-writeInt32X16OffAddr# = writeInt32X16OffAddr#---- | Write vector; offset in bytes. --writeInt64X8OffAddr# :: Addr# -> Int# -> Int64X8# -> State# s -> State# s-writeInt64X8OffAddr# = writeInt64X8OffAddr#---- | Write vector; offset in bytes. --writeWord8X16OffAddr# :: Addr# -> Int# -> Word8X16# -> State# s -> State# s-writeWord8X16OffAddr# = writeWord8X16OffAddr#---- | Write vector; offset in bytes. --writeWord16X8OffAddr# :: Addr# -> Int# -> Word16X8# -> State# s -> State# s-writeWord16X8OffAddr# = writeWord16X8OffAddr#---- | Write vector; offset in bytes. --writeWord32X4OffAddr# :: Addr# -> Int# -> Word32X4# -> State# s -> State# s-writeWord32X4OffAddr# = writeWord32X4OffAddr#---- | Write vector; offset in bytes. --writeWord64X2OffAddr# :: Addr# -> Int# -> Word64X2# -> State# s -> State# s-writeWord64X2OffAddr# = writeWord64X2OffAddr#---- | Write vector; offset in bytes. --writeWord8X32OffAddr# :: Addr# -> Int# -> Word8X32# -> State# s -> State# s-writeWord8X32OffAddr# = writeWord8X32OffAddr#---- | Write vector; offset in bytes. --writeWord16X16OffAddr# :: Addr# -> Int# -> Word16X16# -> State# s -> State# s-writeWord16X16OffAddr# = writeWord16X16OffAddr#---- | Write vector; offset in bytes. --writeWord32X8OffAddr# :: Addr# -> Int# -> Word32X8# -> State# s -> State# s-writeWord32X8OffAddr# = writeWord32X8OffAddr#---- | Write vector; offset in bytes. --writeWord64X4OffAddr# :: Addr# -> Int# -> Word64X4# -> State# s -> State# s-writeWord64X4OffAddr# = writeWord64X4OffAddr#---- | Write vector; offset in bytes. --writeWord8X64OffAddr# :: Addr# -> Int# -> Word8X64# -> State# s -> State# s-writeWord8X64OffAddr# = writeWord8X64OffAddr#---- | Write vector; offset in bytes. --writeWord16X32OffAddr# :: Addr# -> Int# -> Word16X32# -> State# s -> State# s-writeWord16X32OffAddr# = writeWord16X32OffAddr#---- | Write vector; offset in bytes. --writeWord32X16OffAddr# :: Addr# -> Int# -> Word32X16# -> State# s -> State# s-writeWord32X16OffAddr# = writeWord32X16OffAddr#---- | Write vector; offset in bytes. --writeWord64X8OffAddr# :: Addr# -> Int# -> Word64X8# -> State# s -> State# s-writeWord64X8OffAddr# = writeWord64X8OffAddr#---- | Write vector; offset in bytes. --writeFloatX4OffAddr# :: Addr# -> Int# -> FloatX4# -> State# s -> State# s-writeFloatX4OffAddr# = writeFloatX4OffAddr#---- | Write vector; offset in bytes. --writeDoubleX2OffAddr# :: Addr# -> Int# -> DoubleX2# -> State# s -> State# s-writeDoubleX2OffAddr# = writeDoubleX2OffAddr#---- | Write vector; offset in bytes. --writeFloatX8OffAddr# :: Addr# -> Int# -> FloatX8# -> State# s -> State# s-writeFloatX8OffAddr# = writeFloatX8OffAddr#---- | Write vector; offset in bytes. --writeDoubleX4OffAddr# :: Addr# -> Int# -> DoubleX4# -> State# s -> State# s-writeDoubleX4OffAddr# = writeDoubleX4OffAddr#---- | Write vector; offset in bytes. --writeFloatX16OffAddr# :: Addr# -> Int# -> FloatX16# -> State# s -> State# s-writeFloatX16OffAddr# = writeFloatX16OffAddr#---- | Write vector; offset in bytes. --writeDoubleX8OffAddr# :: Addr# -> Int# -> DoubleX8# -> State# s -> State# s-writeDoubleX8OffAddr# = writeDoubleX8OffAddr#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt8ArrayAsInt8X16# :: ByteArray# -> Int# -> Int8X16#-indexInt8ArrayAsInt8X16# = indexInt8ArrayAsInt8X16#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt16ArrayAsInt16X8# :: ByteArray# -> Int# -> Int16X8#-indexInt16ArrayAsInt16X8# = indexInt16ArrayAsInt16X8#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt32ArrayAsInt32X4# :: ByteArray# -> Int# -> Int32X4#-indexInt32ArrayAsInt32X4# = indexInt32ArrayAsInt32X4#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt64ArrayAsInt64X2# :: ByteArray# -> Int# -> Int64X2#-indexInt64ArrayAsInt64X2# = indexInt64ArrayAsInt64X2#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt8ArrayAsInt8X32# :: ByteArray# -> Int# -> Int8X32#-indexInt8ArrayAsInt8X32# = indexInt8ArrayAsInt8X32#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt16ArrayAsInt16X16# :: ByteArray# -> Int# -> Int16X16#-indexInt16ArrayAsInt16X16# = indexInt16ArrayAsInt16X16#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt32ArrayAsInt32X8# :: ByteArray# -> Int# -> Int32X8#-indexInt32ArrayAsInt32X8# = indexInt32ArrayAsInt32X8#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt64ArrayAsInt64X4# :: ByteArray# -> Int# -> Int64X4#-indexInt64ArrayAsInt64X4# = indexInt64ArrayAsInt64X4#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt8ArrayAsInt8X64# :: ByteArray# -> Int# -> Int8X64#-indexInt8ArrayAsInt8X64# = indexInt8ArrayAsInt8X64#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt16ArrayAsInt16X32# :: ByteArray# -> Int# -> Int16X32#-indexInt16ArrayAsInt16X32# = indexInt16ArrayAsInt16X32#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt32ArrayAsInt32X16# :: ByteArray# -> Int# -> Int32X16#-indexInt32ArrayAsInt32X16# = indexInt32ArrayAsInt32X16#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexInt64ArrayAsInt64X8# :: ByteArray# -> Int# -> Int64X8#-indexInt64ArrayAsInt64X8# = indexInt64ArrayAsInt64X8#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord8ArrayAsWord8X16# :: ByteArray# -> Int# -> Word8X16#-indexWord8ArrayAsWord8X16# = indexWord8ArrayAsWord8X16#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord16ArrayAsWord16X8# :: ByteArray# -> Int# -> Word16X8#-indexWord16ArrayAsWord16X8# = indexWord16ArrayAsWord16X8#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord32ArrayAsWord32X4# :: ByteArray# -> Int# -> Word32X4#-indexWord32ArrayAsWord32X4# = indexWord32ArrayAsWord32X4#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord64ArrayAsWord64X2# :: ByteArray# -> Int# -> Word64X2#-indexWord64ArrayAsWord64X2# = indexWord64ArrayAsWord64X2#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord8ArrayAsWord8X32# :: ByteArray# -> Int# -> Word8X32#-indexWord8ArrayAsWord8X32# = indexWord8ArrayAsWord8X32#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord16ArrayAsWord16X16# :: ByteArray# -> Int# -> Word16X16#-indexWord16ArrayAsWord16X16# = indexWord16ArrayAsWord16X16#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord32ArrayAsWord32X8# :: ByteArray# -> Int# -> Word32X8#-indexWord32ArrayAsWord32X8# = indexWord32ArrayAsWord32X8#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord64ArrayAsWord64X4# :: ByteArray# -> Int# -> Word64X4#-indexWord64ArrayAsWord64X4# = indexWord64ArrayAsWord64X4#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord8ArrayAsWord8X64# :: ByteArray# -> Int# -> Word8X64#-indexWord8ArrayAsWord8X64# = indexWord8ArrayAsWord8X64#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord16ArrayAsWord16X32# :: ByteArray# -> Int# -> Word16X32#-indexWord16ArrayAsWord16X32# = indexWord16ArrayAsWord16X32#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord32ArrayAsWord32X16# :: ByteArray# -> Int# -> Word32X16#-indexWord32ArrayAsWord32X16# = indexWord32ArrayAsWord32X16#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexWord64ArrayAsWord64X8# :: ByteArray# -> Int# -> Word64X8#-indexWord64ArrayAsWord64X8# = indexWord64ArrayAsWord64X8#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexFloatArrayAsFloatX4# :: ByteArray# -> Int# -> FloatX4#-indexFloatArrayAsFloatX4# = indexFloatArrayAsFloatX4#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexDoubleArrayAsDoubleX2# :: ByteArray# -> Int# -> DoubleX2#-indexDoubleArrayAsDoubleX2# = indexDoubleArrayAsDoubleX2#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexFloatArrayAsFloatX8# :: ByteArray# -> Int# -> FloatX8#-indexFloatArrayAsFloatX8# = indexFloatArrayAsFloatX8#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexDoubleArrayAsDoubleX4# :: ByteArray# -> Int# -> DoubleX4#-indexDoubleArrayAsDoubleX4# = indexDoubleArrayAsDoubleX4#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexFloatArrayAsFloatX16# :: ByteArray# -> Int# -> FloatX16#-indexFloatArrayAsFloatX16# = indexFloatArrayAsFloatX16#---- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. --indexDoubleArrayAsDoubleX8# :: ByteArray# -> Int# -> DoubleX8#-indexDoubleArrayAsDoubleX8# = indexDoubleArrayAsDoubleX8#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt8ArrayAsInt8X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X16# #)-readInt8ArrayAsInt8X16# = readInt8ArrayAsInt8X16#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt16ArrayAsInt16X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X8# #)-readInt16ArrayAsInt16X8# = readInt16ArrayAsInt16X8#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt32ArrayAsInt32X4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X4# #)-readInt32ArrayAsInt32X4# = readInt32ArrayAsInt32X4#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt64ArrayAsInt64X2# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X2# #)-readInt64ArrayAsInt64X2# = readInt64ArrayAsInt64X2#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt8ArrayAsInt8X32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X32# #)-readInt8ArrayAsInt8X32# = readInt8ArrayAsInt8X32#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt16ArrayAsInt16X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X16# #)-readInt16ArrayAsInt16X16# = readInt16ArrayAsInt16X16#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt32ArrayAsInt32X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X8# #)-readInt32ArrayAsInt32X8# = readInt32ArrayAsInt32X8#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt64ArrayAsInt64X4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X4# #)-readInt64ArrayAsInt64X4# = readInt64ArrayAsInt64X4#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt8ArrayAsInt8X64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X64# #)-readInt8ArrayAsInt8X64# = readInt8ArrayAsInt8X64#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt16ArrayAsInt16X32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X32# #)-readInt16ArrayAsInt16X32# = readInt16ArrayAsInt16X32#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt32ArrayAsInt32X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X16# #)-readInt32ArrayAsInt32X16# = readInt32ArrayAsInt32X16#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readInt64ArrayAsInt64X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X8# #)-readInt64ArrayAsInt64X8# = readInt64ArrayAsInt64X8#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord8ArrayAsWord8X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X16# #)-readWord8ArrayAsWord8X16# = readWord8ArrayAsWord8X16#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord16ArrayAsWord16X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X8# #)-readWord16ArrayAsWord16X8# = readWord16ArrayAsWord16X8#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord32ArrayAsWord32X4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X4# #)-readWord32ArrayAsWord32X4# = readWord32ArrayAsWord32X4#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord64ArrayAsWord64X2# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X2# #)-readWord64ArrayAsWord64X2# = readWord64ArrayAsWord64X2#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord8ArrayAsWord8X32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X32# #)-readWord8ArrayAsWord8X32# = readWord8ArrayAsWord8X32#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord16ArrayAsWord16X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X16# #)-readWord16ArrayAsWord16X16# = readWord16ArrayAsWord16X16#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord32ArrayAsWord32X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X8# #)-readWord32ArrayAsWord32X8# = readWord32ArrayAsWord32X8#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord64ArrayAsWord64X4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X4# #)-readWord64ArrayAsWord64X4# = readWord64ArrayAsWord64X4#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord8ArrayAsWord8X64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X64# #)-readWord8ArrayAsWord8X64# = readWord8ArrayAsWord8X64#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord16ArrayAsWord16X32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X32# #)-readWord16ArrayAsWord16X32# = readWord16ArrayAsWord16X32#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord32ArrayAsWord32X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X16# #)-readWord32ArrayAsWord32X16# = readWord32ArrayAsWord32X16#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readWord64ArrayAsWord64X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X8# #)-readWord64ArrayAsWord64X8# = readWord64ArrayAsWord64X8#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readFloatArrayAsFloatX4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX4# #)-readFloatArrayAsFloatX4# = readFloatArrayAsFloatX4#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readDoubleArrayAsDoubleX2# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX2# #)-readDoubleArrayAsDoubleX2# = readDoubleArrayAsDoubleX2#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readFloatArrayAsFloatX8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX8# #)-readFloatArrayAsFloatX8# = readFloatArrayAsFloatX8#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readDoubleArrayAsDoubleX4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX4# #)-readDoubleArrayAsDoubleX4# = readDoubleArrayAsDoubleX4#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readFloatArrayAsFloatX16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX16# #)-readFloatArrayAsFloatX16# = readFloatArrayAsFloatX16#---- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. --readDoubleArrayAsDoubleX8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX8# #)-readDoubleArrayAsDoubleX8# = readDoubleArrayAsDoubleX8#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt8ArrayAsInt8X16# :: MutableByteArray# s -> Int# -> Int8X16# -> State# s -> State# s-writeInt8ArrayAsInt8X16# = writeInt8ArrayAsInt8X16#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt16ArrayAsInt16X8# :: MutableByteArray# s -> Int# -> Int16X8# -> State# s -> State# s-writeInt16ArrayAsInt16X8# = writeInt16ArrayAsInt16X8#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt32ArrayAsInt32X4# :: MutableByteArray# s -> Int# -> Int32X4# -> State# s -> State# s-writeInt32ArrayAsInt32X4# = writeInt32ArrayAsInt32X4#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt64ArrayAsInt64X2# :: MutableByteArray# s -> Int# -> Int64X2# -> State# s -> State# s-writeInt64ArrayAsInt64X2# = writeInt64ArrayAsInt64X2#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt8ArrayAsInt8X32# :: MutableByteArray# s -> Int# -> Int8X32# -> State# s -> State# s-writeInt8ArrayAsInt8X32# = writeInt8ArrayAsInt8X32#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt16ArrayAsInt16X16# :: MutableByteArray# s -> Int# -> Int16X16# -> State# s -> State# s-writeInt16ArrayAsInt16X16# = writeInt16ArrayAsInt16X16#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt32ArrayAsInt32X8# :: MutableByteArray# s -> Int# -> Int32X8# -> State# s -> State# s-writeInt32ArrayAsInt32X8# = writeInt32ArrayAsInt32X8#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt64ArrayAsInt64X4# :: MutableByteArray# s -> Int# -> Int64X4# -> State# s -> State# s-writeInt64ArrayAsInt64X4# = writeInt64ArrayAsInt64X4#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt8ArrayAsInt8X64# :: MutableByteArray# s -> Int# -> Int8X64# -> State# s -> State# s-writeInt8ArrayAsInt8X64# = writeInt8ArrayAsInt8X64#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt16ArrayAsInt16X32# :: MutableByteArray# s -> Int# -> Int16X32# -> State# s -> State# s-writeInt16ArrayAsInt16X32# = writeInt16ArrayAsInt16X32#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt32ArrayAsInt32X16# :: MutableByteArray# s -> Int# -> Int32X16# -> State# s -> State# s-writeInt32ArrayAsInt32X16# = writeInt32ArrayAsInt32X16#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeInt64ArrayAsInt64X8# :: MutableByteArray# s -> Int# -> Int64X8# -> State# s -> State# s-writeInt64ArrayAsInt64X8# = writeInt64ArrayAsInt64X8#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord8ArrayAsWord8X16# :: MutableByteArray# s -> Int# -> Word8X16# -> State# s -> State# s-writeWord8ArrayAsWord8X16# = writeWord8ArrayAsWord8X16#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord16ArrayAsWord16X8# :: MutableByteArray# s -> Int# -> Word16X8# -> State# s -> State# s-writeWord16ArrayAsWord16X8# = writeWord16ArrayAsWord16X8#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord32ArrayAsWord32X4# :: MutableByteArray# s -> Int# -> Word32X4# -> State# s -> State# s-writeWord32ArrayAsWord32X4# = writeWord32ArrayAsWord32X4#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord64ArrayAsWord64X2# :: MutableByteArray# s -> Int# -> Word64X2# -> State# s -> State# s-writeWord64ArrayAsWord64X2# = writeWord64ArrayAsWord64X2#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord8ArrayAsWord8X32# :: MutableByteArray# s -> Int# -> Word8X32# -> State# s -> State# s-writeWord8ArrayAsWord8X32# = writeWord8ArrayAsWord8X32#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord16ArrayAsWord16X16# :: MutableByteArray# s -> Int# -> Word16X16# -> State# s -> State# s-writeWord16ArrayAsWord16X16# = writeWord16ArrayAsWord16X16#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord32ArrayAsWord32X8# :: MutableByteArray# s -> Int# -> Word32X8# -> State# s -> State# s-writeWord32ArrayAsWord32X8# = writeWord32ArrayAsWord32X8#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord64ArrayAsWord64X4# :: MutableByteArray# s -> Int# -> Word64X4# -> State# s -> State# s-writeWord64ArrayAsWord64X4# = writeWord64ArrayAsWord64X4#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord8ArrayAsWord8X64# :: MutableByteArray# s -> Int# -> Word8X64# -> State# s -> State# s-writeWord8ArrayAsWord8X64# = writeWord8ArrayAsWord8X64#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord16ArrayAsWord16X32# :: MutableByteArray# s -> Int# -> Word16X32# -> State# s -> State# s-writeWord16ArrayAsWord16X32# = writeWord16ArrayAsWord16X32#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord32ArrayAsWord32X16# :: MutableByteArray# s -> Int# -> Word32X16# -> State# s -> State# s-writeWord32ArrayAsWord32X16# = writeWord32ArrayAsWord32X16#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeWord64ArrayAsWord64X8# :: MutableByteArray# s -> Int# -> Word64X8# -> State# s -> State# s-writeWord64ArrayAsWord64X8# = writeWord64ArrayAsWord64X8#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeFloatArrayAsFloatX4# :: MutableByteArray# s -> Int# -> FloatX4# -> State# s -> State# s-writeFloatArrayAsFloatX4# = writeFloatArrayAsFloatX4#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeDoubleArrayAsDoubleX2# :: MutableByteArray# s -> Int# -> DoubleX2# -> State# s -> State# s-writeDoubleArrayAsDoubleX2# = writeDoubleArrayAsDoubleX2#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeFloatArrayAsFloatX8# :: MutableByteArray# s -> Int# -> FloatX8# -> State# s -> State# s-writeFloatArrayAsFloatX8# = writeFloatArrayAsFloatX8#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeDoubleArrayAsDoubleX4# :: MutableByteArray# s -> Int# -> DoubleX4# -> State# s -> State# s-writeDoubleArrayAsDoubleX4# = writeDoubleArrayAsDoubleX4#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeFloatArrayAsFloatX16# :: MutableByteArray# s -> Int# -> FloatX16# -> State# s -> State# s-writeFloatArrayAsFloatX16# = writeFloatArrayAsFloatX16#---- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. --writeDoubleArrayAsDoubleX8# :: MutableByteArray# s -> Int# -> DoubleX8# -> State# s -> State# s-writeDoubleArrayAsDoubleX8# = writeDoubleArrayAsDoubleX8#---- | Reads vector; offset in scalar elements. --indexInt8OffAddrAsInt8X16# :: Addr# -> Int# -> Int8X16#-indexInt8OffAddrAsInt8X16# = indexInt8OffAddrAsInt8X16#---- | Reads vector; offset in scalar elements. --indexInt16OffAddrAsInt16X8# :: Addr# -> Int# -> Int16X8#-indexInt16OffAddrAsInt16X8# = indexInt16OffAddrAsInt16X8#---- | Reads vector; offset in scalar elements. --indexInt32OffAddrAsInt32X4# :: Addr# -> Int# -> Int32X4#-indexInt32OffAddrAsInt32X4# = indexInt32OffAddrAsInt32X4#---- | Reads vector; offset in scalar elements. --indexInt64OffAddrAsInt64X2# :: Addr# -> Int# -> Int64X2#-indexInt64OffAddrAsInt64X2# = indexInt64OffAddrAsInt64X2#---- | Reads vector; offset in scalar elements. --indexInt8OffAddrAsInt8X32# :: Addr# -> Int# -> Int8X32#-indexInt8OffAddrAsInt8X32# = indexInt8OffAddrAsInt8X32#---- | Reads vector; offset in scalar elements. --indexInt16OffAddrAsInt16X16# :: Addr# -> Int# -> Int16X16#-indexInt16OffAddrAsInt16X16# = indexInt16OffAddrAsInt16X16#---- | Reads vector; offset in scalar elements. --indexInt32OffAddrAsInt32X8# :: Addr# -> Int# -> Int32X8#-indexInt32OffAddrAsInt32X8# = indexInt32OffAddrAsInt32X8#---- | Reads vector; offset in scalar elements. --indexInt64OffAddrAsInt64X4# :: Addr# -> Int# -> Int64X4#-indexInt64OffAddrAsInt64X4# = indexInt64OffAddrAsInt64X4#---- | Reads vector; offset in scalar elements. --indexInt8OffAddrAsInt8X64# :: Addr# -> Int# -> Int8X64#-indexInt8OffAddrAsInt8X64# = indexInt8OffAddrAsInt8X64#---- | Reads vector; offset in scalar elements. --indexInt16OffAddrAsInt16X32# :: Addr# -> Int# -> Int16X32#-indexInt16OffAddrAsInt16X32# = indexInt16OffAddrAsInt16X32#---- | Reads vector; offset in scalar elements. --indexInt32OffAddrAsInt32X16# :: Addr# -> Int# -> Int32X16#-indexInt32OffAddrAsInt32X16# = indexInt32OffAddrAsInt32X16#---- | Reads vector; offset in scalar elements. --indexInt64OffAddrAsInt64X8# :: Addr# -> Int# -> Int64X8#-indexInt64OffAddrAsInt64X8# = indexInt64OffAddrAsInt64X8#---- | Reads vector; offset in scalar elements. --indexWord8OffAddrAsWord8X16# :: Addr# -> Int# -> Word8X16#-indexWord8OffAddrAsWord8X16# = indexWord8OffAddrAsWord8X16#---- | Reads vector; offset in scalar elements. --indexWord16OffAddrAsWord16X8# :: Addr# -> Int# -> Word16X8#-indexWord16OffAddrAsWord16X8# = indexWord16OffAddrAsWord16X8#---- | Reads vector; offset in scalar elements. --indexWord32OffAddrAsWord32X4# :: Addr# -> Int# -> Word32X4#-indexWord32OffAddrAsWord32X4# = indexWord32OffAddrAsWord32X4#---- | Reads vector; offset in scalar elements. --indexWord64OffAddrAsWord64X2# :: Addr# -> Int# -> Word64X2#-indexWord64OffAddrAsWord64X2# = indexWord64OffAddrAsWord64X2#---- | Reads vector; offset in scalar elements. --indexWord8OffAddrAsWord8X32# :: Addr# -> Int# -> Word8X32#-indexWord8OffAddrAsWord8X32# = indexWord8OffAddrAsWord8X32#---- | Reads vector; offset in scalar elements. --indexWord16OffAddrAsWord16X16# :: Addr# -> Int# -> Word16X16#-indexWord16OffAddrAsWord16X16# = indexWord16OffAddrAsWord16X16#---- | Reads vector; offset in scalar elements. --indexWord32OffAddrAsWord32X8# :: Addr# -> Int# -> Word32X8#-indexWord32OffAddrAsWord32X8# = indexWord32OffAddrAsWord32X8#---- | Reads vector; offset in scalar elements. --indexWord64OffAddrAsWord64X4# :: Addr# -> Int# -> Word64X4#-indexWord64OffAddrAsWord64X4# = indexWord64OffAddrAsWord64X4#---- | Reads vector; offset in scalar elements. --indexWord8OffAddrAsWord8X64# :: Addr# -> Int# -> Word8X64#-indexWord8OffAddrAsWord8X64# = indexWord8OffAddrAsWord8X64#---- | Reads vector; offset in scalar elements. --indexWord16OffAddrAsWord16X32# :: Addr# -> Int# -> Word16X32#-indexWord16OffAddrAsWord16X32# = indexWord16OffAddrAsWord16X32#---- | Reads vector; offset in scalar elements. --indexWord32OffAddrAsWord32X16# :: Addr# -> Int# -> Word32X16#-indexWord32OffAddrAsWord32X16# = indexWord32OffAddrAsWord32X16#---- | Reads vector; offset in scalar elements. --indexWord64OffAddrAsWord64X8# :: Addr# -> Int# -> Word64X8#-indexWord64OffAddrAsWord64X8# = indexWord64OffAddrAsWord64X8#---- | Reads vector; offset in scalar elements. --indexFloatOffAddrAsFloatX4# :: Addr# -> Int# -> FloatX4#-indexFloatOffAddrAsFloatX4# = indexFloatOffAddrAsFloatX4#---- | Reads vector; offset in scalar elements. --indexDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> DoubleX2#-indexDoubleOffAddrAsDoubleX2# = indexDoubleOffAddrAsDoubleX2#---- | Reads vector; offset in scalar elements. --indexFloatOffAddrAsFloatX8# :: Addr# -> Int# -> FloatX8#-indexFloatOffAddrAsFloatX8# = indexFloatOffAddrAsFloatX8#---- | Reads vector; offset in scalar elements. --indexDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> DoubleX4#-indexDoubleOffAddrAsDoubleX4# = indexDoubleOffAddrAsDoubleX4#---- | Reads vector; offset in scalar elements. --indexFloatOffAddrAsFloatX16# :: Addr# -> Int# -> FloatX16#-indexFloatOffAddrAsFloatX16# = indexFloatOffAddrAsFloatX16#---- | Reads vector; offset in scalar elements. --indexDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> DoubleX8#-indexDoubleOffAddrAsDoubleX8# = indexDoubleOffAddrAsDoubleX8#---- | Reads vector; offset in scalar elements. --readInt8OffAddrAsInt8X16# :: Addr# -> Int# -> State# s -> (# State# s,Int8X16# #)-readInt8OffAddrAsInt8X16# = readInt8OffAddrAsInt8X16#---- | Reads vector; offset in scalar elements. --readInt16OffAddrAsInt16X8# :: Addr# -> Int# -> State# s -> (# State# s,Int16X8# #)-readInt16OffAddrAsInt16X8# = readInt16OffAddrAsInt16X8#---- | Reads vector; offset in scalar elements. --readInt32OffAddrAsInt32X4# :: Addr# -> Int# -> State# s -> (# State# s,Int32X4# #)-readInt32OffAddrAsInt32X4# = readInt32OffAddrAsInt32X4#---- | Reads vector; offset in scalar elements. --readInt64OffAddrAsInt64X2# :: Addr# -> Int# -> State# s -> (# State# s,Int64X2# #)-readInt64OffAddrAsInt64X2# = readInt64OffAddrAsInt64X2#---- | Reads vector; offset in scalar elements. --readInt8OffAddrAsInt8X32# :: Addr# -> Int# -> State# s -> (# State# s,Int8X32# #)-readInt8OffAddrAsInt8X32# = readInt8OffAddrAsInt8X32#---- | Reads vector; offset in scalar elements. --readInt16OffAddrAsInt16X16# :: Addr# -> Int# -> State# s -> (# State# s,Int16X16# #)-readInt16OffAddrAsInt16X16# = readInt16OffAddrAsInt16X16#---- | Reads vector; offset in scalar elements. --readInt32OffAddrAsInt32X8# :: Addr# -> Int# -> State# s -> (# State# s,Int32X8# #)-readInt32OffAddrAsInt32X8# = readInt32OffAddrAsInt32X8#---- | Reads vector; offset in scalar elements. --readInt64OffAddrAsInt64X4# :: Addr# -> Int# -> State# s -> (# State# s,Int64X4# #)-readInt64OffAddrAsInt64X4# = readInt64OffAddrAsInt64X4#---- | Reads vector; offset in scalar elements. --readInt8OffAddrAsInt8X64# :: Addr# -> Int# -> State# s -> (# State# s,Int8X64# #)-readInt8OffAddrAsInt8X64# = readInt8OffAddrAsInt8X64#---- | Reads vector; offset in scalar elements. --readInt16OffAddrAsInt16X32# :: Addr# -> Int# -> State# s -> (# State# s,Int16X32# #)-readInt16OffAddrAsInt16X32# = readInt16OffAddrAsInt16X32#---- | Reads vector; offset in scalar elements. --readInt32OffAddrAsInt32X16# :: Addr# -> Int# -> State# s -> (# State# s,Int32X16# #)-readInt32OffAddrAsInt32X16# = readInt32OffAddrAsInt32X16#---- | Reads vector; offset in scalar elements. --readInt64OffAddrAsInt64X8# :: Addr# -> Int# -> State# s -> (# State# s,Int64X8# #)-readInt64OffAddrAsInt64X8# = readInt64OffAddrAsInt64X8#---- | Reads vector; offset in scalar elements. --readWord8OffAddrAsWord8X16# :: Addr# -> Int# -> State# s -> (# State# s,Word8X16# #)-readWord8OffAddrAsWord8X16# = readWord8OffAddrAsWord8X16#---- | Reads vector; offset in scalar elements. --readWord16OffAddrAsWord16X8# :: Addr# -> Int# -> State# s -> (# State# s,Word16X8# #)-readWord16OffAddrAsWord16X8# = readWord16OffAddrAsWord16X8#---- | Reads vector; offset in scalar elements. --readWord32OffAddrAsWord32X4# :: Addr# -> Int# -> State# s -> (# State# s,Word32X4# #)-readWord32OffAddrAsWord32X4# = readWord32OffAddrAsWord32X4#---- | Reads vector; offset in scalar elements. --readWord64OffAddrAsWord64X2# :: Addr# -> Int# -> State# s -> (# State# s,Word64X2# #)-readWord64OffAddrAsWord64X2# = readWord64OffAddrAsWord64X2#---- | Reads vector; offset in scalar elements. --readWord8OffAddrAsWord8X32# :: Addr# -> Int# -> State# s -> (# State# s,Word8X32# #)-readWord8OffAddrAsWord8X32# = readWord8OffAddrAsWord8X32#---- | Reads vector; offset in scalar elements. --readWord16OffAddrAsWord16X16# :: Addr# -> Int# -> State# s -> (# State# s,Word16X16# #)-readWord16OffAddrAsWord16X16# = readWord16OffAddrAsWord16X16#---- | Reads vector; offset in scalar elements. --readWord32OffAddrAsWord32X8# :: Addr# -> Int# -> State# s -> (# State# s,Word32X8# #)-readWord32OffAddrAsWord32X8# = readWord32OffAddrAsWord32X8#---- | Reads vector; offset in scalar elements. --readWord64OffAddrAsWord64X4# :: Addr# -> Int# -> State# s -> (# State# s,Word64X4# #)-readWord64OffAddrAsWord64X4# = readWord64OffAddrAsWord64X4#---- | Reads vector; offset in scalar elements. --readWord8OffAddrAsWord8X64# :: Addr# -> Int# -> State# s -> (# State# s,Word8X64# #)-readWord8OffAddrAsWord8X64# = readWord8OffAddrAsWord8X64#---- | Reads vector; offset in scalar elements. --readWord16OffAddrAsWord16X32# :: Addr# -> Int# -> State# s -> (# State# s,Word16X32# #)-readWord16OffAddrAsWord16X32# = readWord16OffAddrAsWord16X32#---- | Reads vector; offset in scalar elements. --readWord32OffAddrAsWord32X16# :: Addr# -> Int# -> State# s -> (# State# s,Word32X16# #)-readWord32OffAddrAsWord32X16# = readWord32OffAddrAsWord32X16#---- | Reads vector; offset in scalar elements. --readWord64OffAddrAsWord64X8# :: Addr# -> Int# -> State# s -> (# State# s,Word64X8# #)-readWord64OffAddrAsWord64X8# = readWord64OffAddrAsWord64X8#---- | Reads vector; offset in scalar elements. --readFloatOffAddrAsFloatX4# :: Addr# -> Int# -> State# s -> (# State# s,FloatX4# #)-readFloatOffAddrAsFloatX4# = readFloatOffAddrAsFloatX4#---- | Reads vector; offset in scalar elements. --readDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX2# #)-readDoubleOffAddrAsDoubleX2# = readDoubleOffAddrAsDoubleX2#---- | Reads vector; offset in scalar elements. --readFloatOffAddrAsFloatX8# :: Addr# -> Int# -> State# s -> (# State# s,FloatX8# #)-readFloatOffAddrAsFloatX8# = readFloatOffAddrAsFloatX8#---- | Reads vector; offset in scalar elements. --readDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX4# #)-readDoubleOffAddrAsDoubleX4# = readDoubleOffAddrAsDoubleX4#---- | Reads vector; offset in scalar elements. --readFloatOffAddrAsFloatX16# :: Addr# -> Int# -> State# s -> (# State# s,FloatX16# #)-readFloatOffAddrAsFloatX16# = readFloatOffAddrAsFloatX16#---- | Reads vector; offset in scalar elements. --readDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX8# #)-readDoubleOffAddrAsDoubleX8# = readDoubleOffAddrAsDoubleX8#---- | Write vector; offset in scalar elements. --writeInt8OffAddrAsInt8X16# :: Addr# -> Int# -> Int8X16# -> State# s -> State# s-writeInt8OffAddrAsInt8X16# = writeInt8OffAddrAsInt8X16#---- | Write vector; offset in scalar elements. --writeInt16OffAddrAsInt16X8# :: Addr# -> Int# -> Int16X8# -> State# s -> State# s-writeInt16OffAddrAsInt16X8# = writeInt16OffAddrAsInt16X8#---- | Write vector; offset in scalar elements. --writeInt32OffAddrAsInt32X4# :: Addr# -> Int# -> Int32X4# -> State# s -> State# s-writeInt32OffAddrAsInt32X4# = writeInt32OffAddrAsInt32X4#---- | Write vector; offset in scalar elements. --writeInt64OffAddrAsInt64X2# :: Addr# -> Int# -> Int64X2# -> State# s -> State# s-writeInt64OffAddrAsInt64X2# = writeInt64OffAddrAsInt64X2#---- | Write vector; offset in scalar elements. --writeInt8OffAddrAsInt8X32# :: Addr# -> Int# -> Int8X32# -> State# s -> State# s-writeInt8OffAddrAsInt8X32# = writeInt8OffAddrAsInt8X32#---- | Write vector; offset in scalar elements. --writeInt16OffAddrAsInt16X16# :: Addr# -> Int# -> Int16X16# -> State# s -> State# s-writeInt16OffAddrAsInt16X16# = writeInt16OffAddrAsInt16X16#---- | Write vector; offset in scalar elements. --writeInt32OffAddrAsInt32X8# :: Addr# -> Int# -> Int32X8# -> State# s -> State# s-writeInt32OffAddrAsInt32X8# = writeInt32OffAddrAsInt32X8#---- | Write vector; offset in scalar elements. --writeInt64OffAddrAsInt64X4# :: Addr# -> Int# -> Int64X4# -> State# s -> State# s-writeInt64OffAddrAsInt64X4# = writeInt64OffAddrAsInt64X4#---- | Write vector; offset in scalar elements. --writeInt8OffAddrAsInt8X64# :: Addr# -> Int# -> Int8X64# -> State# s -> State# s-writeInt8OffAddrAsInt8X64# = writeInt8OffAddrAsInt8X64#---- | Write vector; offset in scalar elements. --writeInt16OffAddrAsInt16X32# :: Addr# -> Int# -> Int16X32# -> State# s -> State# s-writeInt16OffAddrAsInt16X32# = writeInt16OffAddrAsInt16X32#---- | Write vector; offset in scalar elements. --writeInt32OffAddrAsInt32X16# :: Addr# -> Int# -> Int32X16# -> State# s -> State# s-writeInt32OffAddrAsInt32X16# = writeInt32OffAddrAsInt32X16#---- | Write vector; offset in scalar elements. --writeInt64OffAddrAsInt64X8# :: Addr# -> Int# -> Int64X8# -> State# s -> State# s-writeInt64OffAddrAsInt64X8# = writeInt64OffAddrAsInt64X8#---- | Write vector; offset in scalar elements. --writeWord8OffAddrAsWord8X16# :: Addr# -> Int# -> Word8X16# -> State# s -> State# s-writeWord8OffAddrAsWord8X16# = writeWord8OffAddrAsWord8X16#---- | Write vector; offset in scalar elements. --writeWord16OffAddrAsWord16X8# :: Addr# -> Int# -> Word16X8# -> State# s -> State# s-writeWord16OffAddrAsWord16X8# = writeWord16OffAddrAsWord16X8#---- | Write vector; offset in scalar elements. --writeWord32OffAddrAsWord32X4# :: Addr# -> Int# -> Word32X4# -> State# s -> State# s-writeWord32OffAddrAsWord32X4# = writeWord32OffAddrAsWord32X4#---- | Write vector; offset in scalar elements. --writeWord64OffAddrAsWord64X2# :: Addr# -> Int# -> Word64X2# -> State# s -> State# s-writeWord64OffAddrAsWord64X2# = writeWord64OffAddrAsWord64X2#---- | Write vector; offset in scalar elements. --writeWord8OffAddrAsWord8X32# :: Addr# -> Int# -> Word8X32# -> State# s -> State# s-writeWord8OffAddrAsWord8X32# = writeWord8OffAddrAsWord8X32#---- | Write vector; offset in scalar elements. --writeWord16OffAddrAsWord16X16# :: Addr# -> Int# -> Word16X16# -> State# s -> State# s-writeWord16OffAddrAsWord16X16# = writeWord16OffAddrAsWord16X16#---- | Write vector; offset in scalar elements. --writeWord32OffAddrAsWord32X8# :: Addr# -> Int# -> Word32X8# -> State# s -> State# s-writeWord32OffAddrAsWord32X8# = writeWord32OffAddrAsWord32X8#---- | Write vector; offset in scalar elements. --writeWord64OffAddrAsWord64X4# :: Addr# -> Int# -> Word64X4# -> State# s -> State# s-writeWord64OffAddrAsWord64X4# = writeWord64OffAddrAsWord64X4#---- | Write vector; offset in scalar elements. --writeWord8OffAddrAsWord8X64# :: Addr# -> Int# -> Word8X64# -> State# s -> State# s-writeWord8OffAddrAsWord8X64# = writeWord8OffAddrAsWord8X64#---- | Write vector; offset in scalar elements. --writeWord16OffAddrAsWord16X32# :: Addr# -> Int# -> Word16X32# -> State# s -> State# s-writeWord16OffAddrAsWord16X32# = writeWord16OffAddrAsWord16X32#---- | Write vector; offset in scalar elements. --writeWord32OffAddrAsWord32X16# :: Addr# -> Int# -> Word32X16# -> State# s -> State# s-writeWord32OffAddrAsWord32X16# = writeWord32OffAddrAsWord32X16#---- | Write vector; offset in scalar elements. --writeWord64OffAddrAsWord64X8# :: Addr# -> Int# -> Word64X8# -> State# s -> State# s-writeWord64OffAddrAsWord64X8# = writeWord64OffAddrAsWord64X8#---- | Write vector; offset in scalar elements. --writeFloatOffAddrAsFloatX4# :: Addr# -> Int# -> FloatX4# -> State# s -> State# s-writeFloatOffAddrAsFloatX4# = writeFloatOffAddrAsFloatX4#---- | Write vector; offset in scalar elements. --writeDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> DoubleX2# -> State# s -> State# s-writeDoubleOffAddrAsDoubleX2# = writeDoubleOffAddrAsDoubleX2#---- | Write vector; offset in scalar elements. --writeFloatOffAddrAsFloatX8# :: Addr# -> Int# -> FloatX8# -> State# s -> State# s-writeFloatOffAddrAsFloatX8# = writeFloatOffAddrAsFloatX8#---- | Write vector; offset in scalar elements. --writeDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> DoubleX4# -> State# s -> State# s-writeDoubleOffAddrAsDoubleX4# = writeDoubleOffAddrAsDoubleX4#---- | Write vector; offset in scalar elements. --writeFloatOffAddrAsFloatX16# :: Addr# -> Int# -> FloatX16# -> State# s -> State# s-writeFloatOffAddrAsFloatX16# = writeFloatOffAddrAsFloatX16#---- | Write vector; offset in scalar elements. -+{-# LANGUAGE NegativeLiterals #-}+{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}+module GHC.Prim (+ +-- * The word size story.+-- |Haskell98 specifies that signed integers (type @Int@)+-- must contain at least 30 bits. GHC always implements @Int@ using the primitive type @Int\#@, whose size equals+-- the @MachDeps.h@ constant @WORD\_SIZE\_IN\_BITS@.+-- This is normally set based on the @config.h@ parameter+-- @SIZEOF\_HSWORD@, i.e., 32 bits on 32-bit machines, 64+-- bits on 64-bit machines. However, it can also be explicitly+-- set to a smaller number than 64, e.g., 62 bits, to allow the+-- possibility of using tag bits. Currently GHC itself has only+-- 32-bit and 64-bit variants, but 61, 62, or 63-bit code can be+-- exported as an external core file for use in other back ends.+-- 30 and 31-bit code is no longer supported.+-- +-- GHC also implements a primitive unsigned integer type @Word\#@ which always has the same number of bits as @Int\#@.+-- +-- In addition, GHC supports families of explicit-sized integers+-- and words at 8, 16, 32, and 64 bits, with the usual+-- arithmetic operations, comparisons, and a range of+-- conversions. The 8-bit and 16-bit sizes are always+-- represented as @Int\#@ and @Word\#@, and the+-- operations implemented in terms of the primops on these+-- types, with suitable range restrictions on the results (using+-- the @narrow$n$Int\#@ and @narrow$n$Word\#@ families+-- of primops. The 32-bit sizes are represented using @Int\#@ and @Word\#@ when @WORD\_SIZE\_IN\_BITS@+-- $\geq$ 32; otherwise, these are represented using distinct+-- primitive types @Int32\#@ and @Word32\#@. These (when+-- needed) have a complete set of corresponding operations;+-- however, nearly all of these are implemented as external C+-- functions rather than as primops. Exactly the same story+-- applies to the 64-bit sizes. All of these details are hidden+-- under the @PrelInt@ and @PrelWord@ modules, which use+-- @\#if@-defs to invoke the appropriate types and+-- operators.+-- +-- Word size also matters for the families of primops for+-- indexing\/reading\/writing fixed-size quantities at offsets+-- from an array base, address, or foreign pointer. Here, a+-- slightly different approach is taken. The names of these+-- primops are fixed, but their /types/ vary according to+-- the value of @WORD\_SIZE\_IN\_BITS@. For example, if word+-- size is at least 32 bits then an operator like+-- @indexInt32Array\#@ has type @ByteArray\# -> Int\# -> Int\#@; otherwise it has type @ByteArray\# -> Int\# -> Int32\#@. This approach confines the necessary @\#if@-defs to this file; no conditional compilation is needed+-- in the files that expose these primops.+-- +-- Finally, there are strongly deprecated primops for coercing+-- between @Addr\#@, the primitive type of machine+-- addresses, and @Int\#@. These are pretty bogus anyway,+-- but will work on existing 32-bit and 64-bit GHC targets; they+-- are completely bogus when tag bits are used in @Int\#@,+-- so are not available in this case. ++ + +-- * Char#+-- |Operations on 31-bit characters.++ Char#,+ gtChar#,+ geChar#,+ eqChar#,+ neChar#,+ ltChar#,+ leChar#,+ ord#,+ +-- * Int#+-- |Operations on native-size integers (32+ bits).++ Int#,+ (+#),+ (-#),+ (*#),+ mulIntMayOflo#,+ quotInt#,+ remInt#,+ quotRemInt#,+ andI#,+ orI#,+ xorI#,+ notI#,+ negateInt#,+ addIntC#,+ subIntC#,+ (>#),+ (>=#),+ (==#),+ (/=#),+ (<#),+ (<=#),+ chr#,+ int2Word#,+ int2Float#,+ int2Double#,+ word2Float#,+ word2Double#,+ uncheckedIShiftL#,+ uncheckedIShiftRA#,+ uncheckedIShiftRL#,+ +-- * Int8#+-- |Operations on 8-bit integers.++ Int8#,+ extendInt8#,+ narrowInt8#,+ negateInt8#,+ plusInt8#,+ subInt8#,+ timesInt8#,+ quotInt8#,+ remInt8#,+ quotRemInt8#,+ eqInt8#,+ geInt8#,+ gtInt8#,+ leInt8#,+ ltInt8#,+ neInt8#,+ +-- * Word8#+-- |Operations on 8-bit unsigned integers.++ Word8#,+ extendWord8#,+ narrowWord8#,+ notWord8#,+ plusWord8#,+ subWord8#,+ timesWord8#,+ quotWord8#,+ remWord8#,+ quotRemWord8#,+ eqWord8#,+ geWord8#,+ gtWord8#,+ leWord8#,+ ltWord8#,+ neWord8#,+ +-- * Int16#+-- |Operations on 16-bit integers.++ Int16#,+ extendInt16#,+ narrowInt16#,+ negateInt16#,+ plusInt16#,+ subInt16#,+ timesInt16#,+ quotInt16#,+ remInt16#,+ quotRemInt16#,+ eqInt16#,+ geInt16#,+ gtInt16#,+ leInt16#,+ ltInt16#,+ neInt16#,+ +-- * Word16#+-- |Operations on 16-bit unsigned integers.++ Word16#,+ extendWord16#,+ narrowWord16#,+ notWord16#,+ plusWord16#,+ subWord16#,+ timesWord16#,+ quotWord16#,+ remWord16#,+ quotRemWord16#,+ eqWord16#,+ geWord16#,+ gtWord16#,+ leWord16#,+ ltWord16#,+ neWord16#,+ +-- * Word#+-- |Operations on native-sized unsigned words (32+ bits).++ Word#,+ plusWord#,+ addWordC#,+ subWordC#,+ plusWord2#,+ minusWord#,+ timesWord#,+ timesWord2#,+ quotWord#,+ remWord#,+ quotRemWord#,+ quotRemWord2#,+ and#,+ or#,+ xor#,+ not#,+ uncheckedShiftL#,+ uncheckedShiftRL#,+ word2Int#,+ gtWord#,+ geWord#,+ eqWord#,+ neWord#,+ ltWord#,+ leWord#,+ popCnt8#,+ popCnt16#,+ popCnt32#,+ popCnt64#,+ popCnt#,+ pdep8#,+ pdep16#,+ pdep32#,+ pdep64#,+ pdep#,+ pext8#,+ pext16#,+ pext32#,+ pext64#,+ pext#,+ clz8#,+ clz16#,+ clz32#,+ clz64#,+ clz#,+ ctz8#,+ ctz16#,+ ctz32#,+ ctz64#,+ ctz#,+ byteSwap16#,+ byteSwap32#,+ byteSwap64#,+ byteSwap#,+ bitReverse8#,+ bitReverse16#,+ bitReverse32#,+ bitReverse64#,+ bitReverse#,+ +-- * Narrowings+-- |Explicit narrowing of native-sized ints or words.++ narrow8Int#,+ narrow16Int#,+ narrow32Int#,+ narrow8Word#,+ narrow16Word#,+ narrow32Word#,+ +-- * Double#+-- |Operations on double-precision (64 bit) floating-point numbers.++ Double#,+ (>##),+ (>=##),+ (==##),+ (/=##),+ (<##),+ (<=##),+ (+##),+ (-##),+ (*##),+ (/##),+ negateDouble#,+ fabsDouble#,+ double2Int#,+ double2Float#,+ expDouble#,+ expm1Double#,+ logDouble#,+ log1pDouble#,+ sqrtDouble#,+ sinDouble#,+ cosDouble#,+ tanDouble#,+ asinDouble#,+ acosDouble#,+ atanDouble#,+ sinhDouble#,+ coshDouble#,+ tanhDouble#,+ asinhDouble#,+ acoshDouble#,+ atanhDouble#,+ (**##),+ decodeDouble_2Int#,+ decodeDouble_Int64#,+ +-- * Float#+-- |Operations on single-precision (32-bit) floating-point numbers.++ Float#,+ gtFloat#,+ geFloat#,+ eqFloat#,+ neFloat#,+ ltFloat#,+ leFloat#,+ plusFloat#,+ minusFloat#,+ timesFloat#,+ divideFloat#,+ negateFloat#,+ fabsFloat#,+ float2Int#,+ expFloat#,+ expm1Float#,+ logFloat#,+ log1pFloat#,+ sqrtFloat#,+ sinFloat#,+ cosFloat#,+ tanFloat#,+ asinFloat#,+ acosFloat#,+ atanFloat#,+ sinhFloat#,+ coshFloat#,+ tanhFloat#,+ asinhFloat#,+ acoshFloat#,+ atanhFloat#,+ powerFloat#,+ float2Double#,+ decodeFloat_Int#,+ +-- * Arrays+-- |Operations on @Array\#@.++ Array#,+ MutableArray#,+ newArray#,+ sameMutableArray#,+ readArray#,+ writeArray#,+ sizeofArray#,+ sizeofMutableArray#,+ indexArray#,+ unsafeFreezeArray#,+ unsafeThawArray#,+ copyArray#,+ copyMutableArray#,+ cloneArray#,+ cloneMutableArray#,+ freezeArray#,+ thawArray#,+ casArray#,+ +-- * Small Arrays+-- |Operations on @SmallArray\#@. A @SmallArray\#@ works+-- just like an @Array\#@, but with different space use and+-- performance characteristics (that are often useful with small+-- arrays). The @SmallArray\#@ and @SmallMutableArray#@+-- lack a \`card table\'. The purpose of a card table is to avoid+-- having to scan every element of the array on each GC by+-- keeping track of which elements have changed since the last GC+-- and only scanning those that have changed. So the consequence+-- of there being no card table is that the representation is+-- somewhat smaller and the writes are somewhat faster (because+-- the card table does not need to be updated). The disadvantage+-- of course is that for a @SmallMutableArray#@ the whole+-- array has to be scanned on each GC. Thus it is best suited for+-- use cases where the mutable array is not long lived, e.g.+-- where a mutable array is initialised quickly and then frozen+-- to become an immutable @SmallArray\#@.+-- ++ SmallArray#,+ SmallMutableArray#,+ newSmallArray#,+ sameSmallMutableArray#,+ shrinkSmallMutableArray#,+ readSmallArray#,+ writeSmallArray#,+ sizeofSmallArray#,+ sizeofSmallMutableArray#,+ getSizeofSmallMutableArray#,+ indexSmallArray#,+ unsafeFreezeSmallArray#,+ unsafeThawSmallArray#,+ copySmallArray#,+ copySmallMutableArray#,+ cloneSmallArray#,+ cloneSmallMutableArray#,+ freezeSmallArray#,+ thawSmallArray#,+ casSmallArray#,+ +-- * Byte Arrays+-- |Operations on @ByteArray\#@. A @ByteArray\#@ is a just a region of+-- raw memory in the garbage-collected heap, which is not+-- scanned for pointers. It carries its own size (in bytes).+-- There are+-- three sets of operations for accessing byte array contents:+-- index for reading from immutable byte arrays, and read\/write+-- for mutable byte arrays. Each set contains operations for a+-- range of useful primitive data types. Each operation takes+-- an offset measured in terms of the size of the primitive type+-- being read or written.++ ByteArray#,+ MutableByteArray#,+ newByteArray#,+ newPinnedByteArray#,+ newAlignedPinnedByteArray#,+ isMutableByteArrayPinned#,+ isByteArrayPinned#,+ byteArrayContents#,+ sameMutableByteArray#,+ shrinkMutableByteArray#,+ resizeMutableByteArray#,+ unsafeFreezeByteArray#,+ sizeofByteArray#,+ sizeofMutableByteArray#,+ getSizeofMutableByteArray#,+ indexCharArray#,+ indexWideCharArray#,+ indexIntArray#,+ indexWordArray#,+ indexAddrArray#,+ indexFloatArray#,+ indexDoubleArray#,+ indexStablePtrArray#,+ indexInt8Array#,+ indexInt16Array#,+ indexInt32Array#,+ indexInt64Array#,+ indexWord8Array#,+ indexWord16Array#,+ indexWord32Array#,+ indexWord64Array#,+ indexWord8ArrayAsChar#,+ indexWord8ArrayAsWideChar#,+ indexWord8ArrayAsAddr#,+ indexWord8ArrayAsFloat#,+ indexWord8ArrayAsDouble#,+ indexWord8ArrayAsStablePtr#,+ indexWord8ArrayAsInt16#,+ indexWord8ArrayAsInt32#,+ indexWord8ArrayAsInt64#,+ indexWord8ArrayAsInt#,+ indexWord8ArrayAsWord16#,+ indexWord8ArrayAsWord32#,+ indexWord8ArrayAsWord64#,+ indexWord8ArrayAsWord#,+ readCharArray#,+ readWideCharArray#,+ readIntArray#,+ readWordArray#,+ readAddrArray#,+ readFloatArray#,+ readDoubleArray#,+ readStablePtrArray#,+ readInt8Array#,+ readInt16Array#,+ readInt32Array#,+ readInt64Array#,+ readWord8Array#,+ readWord16Array#,+ readWord32Array#,+ readWord64Array#,+ readWord8ArrayAsChar#,+ readWord8ArrayAsWideChar#,+ readWord8ArrayAsAddr#,+ readWord8ArrayAsFloat#,+ readWord8ArrayAsDouble#,+ readWord8ArrayAsStablePtr#,+ readWord8ArrayAsInt16#,+ readWord8ArrayAsInt32#,+ readWord8ArrayAsInt64#,+ readWord8ArrayAsInt#,+ readWord8ArrayAsWord16#,+ readWord8ArrayAsWord32#,+ readWord8ArrayAsWord64#,+ readWord8ArrayAsWord#,+ writeCharArray#,+ writeWideCharArray#,+ writeIntArray#,+ writeWordArray#,+ writeAddrArray#,+ writeFloatArray#,+ writeDoubleArray#,+ writeStablePtrArray#,+ writeInt8Array#,+ writeInt16Array#,+ writeInt32Array#,+ writeInt64Array#,+ writeWord8Array#,+ writeWord16Array#,+ writeWord32Array#,+ writeWord64Array#,+ writeWord8ArrayAsChar#,+ writeWord8ArrayAsWideChar#,+ writeWord8ArrayAsAddr#,+ writeWord8ArrayAsFloat#,+ writeWord8ArrayAsDouble#,+ writeWord8ArrayAsStablePtr#,+ writeWord8ArrayAsInt16#,+ writeWord8ArrayAsInt32#,+ writeWord8ArrayAsInt64#,+ writeWord8ArrayAsInt#,+ writeWord8ArrayAsWord16#,+ writeWord8ArrayAsWord32#,+ writeWord8ArrayAsWord64#,+ writeWord8ArrayAsWord#,+ compareByteArrays#,+ copyByteArray#,+ copyMutableByteArray#,+ copyByteArrayToAddr#,+ copyMutableByteArrayToAddr#,+ copyAddrToByteArray#,+ setByteArray#,+ atomicReadIntArray#,+ atomicWriteIntArray#,+ casIntArray#,+ fetchAddIntArray#,+ fetchSubIntArray#,+ fetchAndIntArray#,+ fetchNandIntArray#,+ fetchOrIntArray#,+ fetchXorIntArray#,+ +-- * Arrays of arrays+-- |Operations on @ArrayArray\#@. An @ArrayArray\#@ contains references to /unpointed/+-- arrays, such as @ByteArray\#s@. Hence, it is not parameterised by the element types,+-- just like a @ByteArray\#@, but it needs to be scanned during GC, just like an @Array\#@.+-- We represent an @ArrayArray\#@ exactly as a @Array\#@, but provide element-type-specific+-- indexing, reading, and writing.++ ArrayArray#,+ MutableArrayArray#,+ newArrayArray#,+ sameMutableArrayArray#,+ unsafeFreezeArrayArray#,+ sizeofArrayArray#,+ sizeofMutableArrayArray#,+ indexByteArrayArray#,+ indexArrayArrayArray#,+ readByteArrayArray#,+ readMutableByteArrayArray#,+ readArrayArrayArray#,+ readMutableArrayArrayArray#,+ writeByteArrayArray#,+ writeMutableByteArrayArray#,+ writeArrayArrayArray#,+ writeMutableArrayArrayArray#,+ copyArrayArray#,+ copyMutableArrayArray#,+ +-- * Addr#+-- |++ Addr#,+ nullAddr#,+ plusAddr#,+ minusAddr#,+ remAddr#,+ addr2Int#,+ int2Addr#,+ gtAddr#,+ geAddr#,+ eqAddr#,+ neAddr#,+ ltAddr#,+ leAddr#,+ indexCharOffAddr#,+ indexWideCharOffAddr#,+ indexIntOffAddr#,+ indexWordOffAddr#,+ indexAddrOffAddr#,+ indexFloatOffAddr#,+ indexDoubleOffAddr#,+ indexStablePtrOffAddr#,+ indexInt8OffAddr#,+ indexInt16OffAddr#,+ indexInt32OffAddr#,+ indexInt64OffAddr#,+ indexWord8OffAddr#,+ indexWord16OffAddr#,+ indexWord32OffAddr#,+ indexWord64OffAddr#,+ readCharOffAddr#,+ readWideCharOffAddr#,+ readIntOffAddr#,+ readWordOffAddr#,+ readAddrOffAddr#,+ readFloatOffAddr#,+ readDoubleOffAddr#,+ readStablePtrOffAddr#,+ readInt8OffAddr#,+ readInt16OffAddr#,+ readInt32OffAddr#,+ readInt64OffAddr#,+ readWord8OffAddr#,+ readWord16OffAddr#,+ readWord32OffAddr#,+ readWord64OffAddr#,+ writeCharOffAddr#,+ writeWideCharOffAddr#,+ writeIntOffAddr#,+ writeWordOffAddr#,+ writeAddrOffAddr#,+ writeFloatOffAddr#,+ writeDoubleOffAddr#,+ writeStablePtrOffAddr#,+ writeInt8OffAddr#,+ writeInt16OffAddr#,+ writeInt32OffAddr#,+ writeInt64OffAddr#,+ writeWord8OffAddr#,+ writeWord16OffAddr#,+ writeWord32OffAddr#,+ writeWord64OffAddr#,+ +-- * Mutable variables+-- |Operations on MutVar\#s.++ MutVar#,+ newMutVar#,+ readMutVar#,+ writeMutVar#,+ sameMutVar#,+ atomicModifyMutVar2#,+ atomicModifyMutVar_#,+ casMutVar#,+ +-- * Exceptions+-- |++ catch#,+ raise#,+ raiseIO#,+ maskAsyncExceptions#,+ maskUninterruptible#,+ unmaskAsyncExceptions#,+ getMaskingState#,+ +-- * STM-accessible Mutable Variables+-- |++ TVar#,+ atomically#,+ retry#,+ catchRetry#,+ catchSTM#,+ newTVar#,+ readTVar#,+ readTVarIO#,+ writeTVar#,+ sameTVar#,+ +-- * Synchronized Mutable Variables+-- |Operations on @MVar\#@s. ++ MVar#,+ newMVar#,+ takeMVar#,+ tryTakeMVar#,+ putMVar#,+ tryPutMVar#,+ readMVar#,+ tryReadMVar#,+ sameMVar#,+ isEmptyMVar#,+ +-- * Delay\/wait operations+-- |++ delay#,+ waitRead#,+ waitWrite#,+ +-- * Concurrency primitives+-- |++ State#,+ RealWorld,+ ThreadId#,+ fork#,+ forkOn#,+ killThread#,+ yield#,+ myThreadId#,+ labelThread#,+ isCurrentThreadBound#,+ noDuplicate#,+ threadStatus#,+ +-- * Weak pointers+-- |++ Weak#,+ mkWeak#,+ mkWeakNoFinalizer#,+ addCFinalizerToWeak#,+ deRefWeak#,+ finalizeWeak#,+ touch#,+ +-- * Stable pointers and names+-- |++ StablePtr#,+ StableName#,+ makeStablePtr#,+ deRefStablePtr#,+ eqStablePtr#,+ makeStableName#,+ eqStableName#,+ stableNameToInt#,+ +-- * Compact normal form+-- |Primitives for working with compact regions. The @ghc\-compact@+-- library and the @compact@ library demonstrate how to use these+-- primitives. The documentation below draws a distinction between+-- a CNF and a compact block. A CNF contains one or more compact+-- blocks. The source file @rts\\/sm\\/CNF.c@+-- diagrams this relationship. When discussing a compact+-- block, an additional distinction is drawn between capacity and+-- utilized bytes. The capacity is the maximum number of bytes that+-- the compact block can hold. The utilized bytes is the number of+-- bytes that are actually used by the compact block.+-- ++ Compact#,+ compactNew#,+ compactResize#,+ compactContains#,+ compactContainsAny#,+ compactGetFirstBlock#,+ compactGetNextBlock#,+ compactAllocateBlock#,+ compactFixupPointers#,+ compactAdd#,+ compactAddWithSharing#,+ compactSize#,+ +-- * Unsafe pointer equality+-- |++ reallyUnsafePtrEquality#,+ +-- * Parallelism+-- |++ par#,+ spark#,+ seq#,+ getSpark#,+ numSparks#,+ +-- * Tag to enum stuff+-- |Convert back and forth between values of enumerated types+-- and small integers.++ dataToTag#,+ tagToEnum#,+ +-- * Bytecode operations+-- |Support for manipulating bytecode objects used by the interpreter and+-- linker.+-- +-- Bytecode objects are heap objects which represent top-level bindings and+-- contain a list of instructions and data needed by these instructions.++ BCO#,+ addrToAny#,+ anyToAddr#,+ mkApUpd0#,+ newBCO#,+ unpackClosure#,+ closureSize#,+ getApStackVal#,+ +-- * Misc+-- |These aren\'t nearly as wired in as Etc...++ getCCSOf#,+ getCurrentCCS#,+ clearCCS#,+ +-- * Etc+-- |Miscellaneous built-ins++ Proxy#,+ proxy#,+ seq,+ unsafeCoerce#,+ traceEvent#,+ traceBinaryEvent#,+ traceMarker#,+ setThreadAllocationCounter#,+ +-- * Safe coercions+-- |++ coerce,+ +-- * SIMD Vectors+-- |Operations on SIMD vectors.++ Int8X16#,+ Int16X8#,+ Int32X4#,+ Int64X2#,+ Int8X32#,+ Int16X16#,+ Int32X8#,+ Int64X4#,+ Int8X64#,+ Int16X32#,+ Int32X16#,+ Int64X8#,+ Word8X16#,+ Word16X8#,+ Word32X4#,+ Word64X2#,+ Word8X32#,+ Word16X16#,+ Word32X8#,+ Word64X4#,+ Word8X64#,+ Word16X32#,+ Word32X16#,+ Word64X8#,+ FloatX4#,+ DoubleX2#,+ FloatX8#,+ DoubleX4#,+ FloatX16#,+ DoubleX8#,+ broadcastInt8X16#,+ broadcastInt16X8#,+ broadcastInt32X4#,+ broadcastInt64X2#,+ broadcastInt8X32#,+ broadcastInt16X16#,+ broadcastInt32X8#,+ broadcastInt64X4#,+ broadcastInt8X64#,+ broadcastInt16X32#,+ broadcastInt32X16#,+ broadcastInt64X8#,+ broadcastWord8X16#,+ broadcastWord16X8#,+ broadcastWord32X4#,+ broadcastWord64X2#,+ broadcastWord8X32#,+ broadcastWord16X16#,+ broadcastWord32X8#,+ broadcastWord64X4#,+ broadcastWord8X64#,+ broadcastWord16X32#,+ broadcastWord32X16#,+ broadcastWord64X8#,+ broadcastFloatX4#,+ broadcastDoubleX2#,+ broadcastFloatX8#,+ broadcastDoubleX4#,+ broadcastFloatX16#,+ broadcastDoubleX8#,+ packInt8X16#,+ packInt16X8#,+ packInt32X4#,+ packInt64X2#,+ packInt8X32#,+ packInt16X16#,+ packInt32X8#,+ packInt64X4#,+ packInt8X64#,+ packInt16X32#,+ packInt32X16#,+ packInt64X8#,+ packWord8X16#,+ packWord16X8#,+ packWord32X4#,+ packWord64X2#,+ packWord8X32#,+ packWord16X16#,+ packWord32X8#,+ packWord64X4#,+ packWord8X64#,+ packWord16X32#,+ packWord32X16#,+ packWord64X8#,+ packFloatX4#,+ packDoubleX2#,+ packFloatX8#,+ packDoubleX4#,+ packFloatX16#,+ packDoubleX8#,+ unpackInt8X16#,+ unpackInt16X8#,+ unpackInt32X4#,+ unpackInt64X2#,+ unpackInt8X32#,+ unpackInt16X16#,+ unpackInt32X8#,+ unpackInt64X4#,+ unpackInt8X64#,+ unpackInt16X32#,+ unpackInt32X16#,+ unpackInt64X8#,+ unpackWord8X16#,+ unpackWord16X8#,+ unpackWord32X4#,+ unpackWord64X2#,+ unpackWord8X32#,+ unpackWord16X16#,+ unpackWord32X8#,+ unpackWord64X4#,+ unpackWord8X64#,+ unpackWord16X32#,+ unpackWord32X16#,+ unpackWord64X8#,+ unpackFloatX4#,+ unpackDoubleX2#,+ unpackFloatX8#,+ unpackDoubleX4#,+ unpackFloatX16#,+ unpackDoubleX8#,+ insertInt8X16#,+ insertInt16X8#,+ insertInt32X4#,+ insertInt64X2#,+ insertInt8X32#,+ insertInt16X16#,+ insertInt32X8#,+ insertInt64X4#,+ insertInt8X64#,+ insertInt16X32#,+ insertInt32X16#,+ insertInt64X8#,+ insertWord8X16#,+ insertWord16X8#,+ insertWord32X4#,+ insertWord64X2#,+ insertWord8X32#,+ insertWord16X16#,+ insertWord32X8#,+ insertWord64X4#,+ insertWord8X64#,+ insertWord16X32#,+ insertWord32X16#,+ insertWord64X8#,+ insertFloatX4#,+ insertDoubleX2#,+ insertFloatX8#,+ insertDoubleX4#,+ insertFloatX16#,+ insertDoubleX8#,+ plusInt8X16#,+ plusInt16X8#,+ plusInt32X4#,+ plusInt64X2#,+ plusInt8X32#,+ plusInt16X16#,+ plusInt32X8#,+ plusInt64X4#,+ plusInt8X64#,+ plusInt16X32#,+ plusInt32X16#,+ plusInt64X8#,+ plusWord8X16#,+ plusWord16X8#,+ plusWord32X4#,+ plusWord64X2#,+ plusWord8X32#,+ plusWord16X16#,+ plusWord32X8#,+ plusWord64X4#,+ plusWord8X64#,+ plusWord16X32#,+ plusWord32X16#,+ plusWord64X8#,+ plusFloatX4#,+ plusDoubleX2#,+ plusFloatX8#,+ plusDoubleX4#,+ plusFloatX16#,+ plusDoubleX8#,+ minusInt8X16#,+ minusInt16X8#,+ minusInt32X4#,+ minusInt64X2#,+ minusInt8X32#,+ minusInt16X16#,+ minusInt32X8#,+ minusInt64X4#,+ minusInt8X64#,+ minusInt16X32#,+ minusInt32X16#,+ minusInt64X8#,+ minusWord8X16#,+ minusWord16X8#,+ minusWord32X4#,+ minusWord64X2#,+ minusWord8X32#,+ minusWord16X16#,+ minusWord32X8#,+ minusWord64X4#,+ minusWord8X64#,+ minusWord16X32#,+ minusWord32X16#,+ minusWord64X8#,+ minusFloatX4#,+ minusDoubleX2#,+ minusFloatX8#,+ minusDoubleX4#,+ minusFloatX16#,+ minusDoubleX8#,+ timesInt8X16#,+ timesInt16X8#,+ timesInt32X4#,+ timesInt64X2#,+ timesInt8X32#,+ timesInt16X16#,+ timesInt32X8#,+ timesInt64X4#,+ timesInt8X64#,+ timesInt16X32#,+ timesInt32X16#,+ timesInt64X8#,+ timesWord8X16#,+ timesWord16X8#,+ timesWord32X4#,+ timesWord64X2#,+ timesWord8X32#,+ timesWord16X16#,+ timesWord32X8#,+ timesWord64X4#,+ timesWord8X64#,+ timesWord16X32#,+ timesWord32X16#,+ timesWord64X8#,+ timesFloatX4#,+ timesDoubleX2#,+ timesFloatX8#,+ timesDoubleX4#,+ timesFloatX16#,+ timesDoubleX8#,+ divideFloatX4#,+ divideDoubleX2#,+ divideFloatX8#,+ divideDoubleX4#,+ divideFloatX16#,+ divideDoubleX8#,+ quotInt8X16#,+ quotInt16X8#,+ quotInt32X4#,+ quotInt64X2#,+ quotInt8X32#,+ quotInt16X16#,+ quotInt32X8#,+ quotInt64X4#,+ quotInt8X64#,+ quotInt16X32#,+ quotInt32X16#,+ quotInt64X8#,+ quotWord8X16#,+ quotWord16X8#,+ quotWord32X4#,+ quotWord64X2#,+ quotWord8X32#,+ quotWord16X16#,+ quotWord32X8#,+ quotWord64X4#,+ quotWord8X64#,+ quotWord16X32#,+ quotWord32X16#,+ quotWord64X8#,+ remInt8X16#,+ remInt16X8#,+ remInt32X4#,+ remInt64X2#,+ remInt8X32#,+ remInt16X16#,+ remInt32X8#,+ remInt64X4#,+ remInt8X64#,+ remInt16X32#,+ remInt32X16#,+ remInt64X8#,+ remWord8X16#,+ remWord16X8#,+ remWord32X4#,+ remWord64X2#,+ remWord8X32#,+ remWord16X16#,+ remWord32X8#,+ remWord64X4#,+ remWord8X64#,+ remWord16X32#,+ remWord32X16#,+ remWord64X8#,+ negateInt8X16#,+ negateInt16X8#,+ negateInt32X4#,+ negateInt64X2#,+ negateInt8X32#,+ negateInt16X16#,+ negateInt32X8#,+ negateInt64X4#,+ negateInt8X64#,+ negateInt16X32#,+ negateInt32X16#,+ negateInt64X8#,+ negateFloatX4#,+ negateDoubleX2#,+ negateFloatX8#,+ negateDoubleX4#,+ negateFloatX16#,+ negateDoubleX8#,+ indexInt8X16Array#,+ indexInt16X8Array#,+ indexInt32X4Array#,+ indexInt64X2Array#,+ indexInt8X32Array#,+ indexInt16X16Array#,+ indexInt32X8Array#,+ indexInt64X4Array#,+ indexInt8X64Array#,+ indexInt16X32Array#,+ indexInt32X16Array#,+ indexInt64X8Array#,+ indexWord8X16Array#,+ indexWord16X8Array#,+ indexWord32X4Array#,+ indexWord64X2Array#,+ indexWord8X32Array#,+ indexWord16X16Array#,+ indexWord32X8Array#,+ indexWord64X4Array#,+ indexWord8X64Array#,+ indexWord16X32Array#,+ indexWord32X16Array#,+ indexWord64X8Array#,+ indexFloatX4Array#,+ indexDoubleX2Array#,+ indexFloatX8Array#,+ indexDoubleX4Array#,+ indexFloatX16Array#,+ indexDoubleX8Array#,+ readInt8X16Array#,+ readInt16X8Array#,+ readInt32X4Array#,+ readInt64X2Array#,+ readInt8X32Array#,+ readInt16X16Array#,+ readInt32X8Array#,+ readInt64X4Array#,+ readInt8X64Array#,+ readInt16X32Array#,+ readInt32X16Array#,+ readInt64X8Array#,+ readWord8X16Array#,+ readWord16X8Array#,+ readWord32X4Array#,+ readWord64X2Array#,+ readWord8X32Array#,+ readWord16X16Array#,+ readWord32X8Array#,+ readWord64X4Array#,+ readWord8X64Array#,+ readWord16X32Array#,+ readWord32X16Array#,+ readWord64X8Array#,+ readFloatX4Array#,+ readDoubleX2Array#,+ readFloatX8Array#,+ readDoubleX4Array#,+ readFloatX16Array#,+ readDoubleX8Array#,+ writeInt8X16Array#,+ writeInt16X8Array#,+ writeInt32X4Array#,+ writeInt64X2Array#,+ writeInt8X32Array#,+ writeInt16X16Array#,+ writeInt32X8Array#,+ writeInt64X4Array#,+ writeInt8X64Array#,+ writeInt16X32Array#,+ writeInt32X16Array#,+ writeInt64X8Array#,+ writeWord8X16Array#,+ writeWord16X8Array#,+ writeWord32X4Array#,+ writeWord64X2Array#,+ writeWord8X32Array#,+ writeWord16X16Array#,+ writeWord32X8Array#,+ writeWord64X4Array#,+ writeWord8X64Array#,+ writeWord16X32Array#,+ writeWord32X16Array#,+ writeWord64X8Array#,+ writeFloatX4Array#,+ writeDoubleX2Array#,+ writeFloatX8Array#,+ writeDoubleX4Array#,+ writeFloatX16Array#,+ writeDoubleX8Array#,+ indexInt8X16OffAddr#,+ indexInt16X8OffAddr#,+ indexInt32X4OffAddr#,+ indexInt64X2OffAddr#,+ indexInt8X32OffAddr#,+ indexInt16X16OffAddr#,+ indexInt32X8OffAddr#,+ indexInt64X4OffAddr#,+ indexInt8X64OffAddr#,+ indexInt16X32OffAddr#,+ indexInt32X16OffAddr#,+ indexInt64X8OffAddr#,+ indexWord8X16OffAddr#,+ indexWord16X8OffAddr#,+ indexWord32X4OffAddr#,+ indexWord64X2OffAddr#,+ indexWord8X32OffAddr#,+ indexWord16X16OffAddr#,+ indexWord32X8OffAddr#,+ indexWord64X4OffAddr#,+ indexWord8X64OffAddr#,+ indexWord16X32OffAddr#,+ indexWord32X16OffAddr#,+ indexWord64X8OffAddr#,+ indexFloatX4OffAddr#,+ indexDoubleX2OffAddr#,+ indexFloatX8OffAddr#,+ indexDoubleX4OffAddr#,+ indexFloatX16OffAddr#,+ indexDoubleX8OffAddr#,+ readInt8X16OffAddr#,+ readInt16X8OffAddr#,+ readInt32X4OffAddr#,+ readInt64X2OffAddr#,+ readInt8X32OffAddr#,+ readInt16X16OffAddr#,+ readInt32X8OffAddr#,+ readInt64X4OffAddr#,+ readInt8X64OffAddr#,+ readInt16X32OffAddr#,+ readInt32X16OffAddr#,+ readInt64X8OffAddr#,+ readWord8X16OffAddr#,+ readWord16X8OffAddr#,+ readWord32X4OffAddr#,+ readWord64X2OffAddr#,+ readWord8X32OffAddr#,+ readWord16X16OffAddr#,+ readWord32X8OffAddr#,+ readWord64X4OffAddr#,+ readWord8X64OffAddr#,+ readWord16X32OffAddr#,+ readWord32X16OffAddr#,+ readWord64X8OffAddr#,+ readFloatX4OffAddr#,+ readDoubleX2OffAddr#,+ readFloatX8OffAddr#,+ readDoubleX4OffAddr#,+ readFloatX16OffAddr#,+ readDoubleX8OffAddr#,+ writeInt8X16OffAddr#,+ writeInt16X8OffAddr#,+ writeInt32X4OffAddr#,+ writeInt64X2OffAddr#,+ writeInt8X32OffAddr#,+ writeInt16X16OffAddr#,+ writeInt32X8OffAddr#,+ writeInt64X4OffAddr#,+ writeInt8X64OffAddr#,+ writeInt16X32OffAddr#,+ writeInt32X16OffAddr#,+ writeInt64X8OffAddr#,+ writeWord8X16OffAddr#,+ writeWord16X8OffAddr#,+ writeWord32X4OffAddr#,+ writeWord64X2OffAddr#,+ writeWord8X32OffAddr#,+ writeWord16X16OffAddr#,+ writeWord32X8OffAddr#,+ writeWord64X4OffAddr#,+ writeWord8X64OffAddr#,+ writeWord16X32OffAddr#,+ writeWord32X16OffAddr#,+ writeWord64X8OffAddr#,+ writeFloatX4OffAddr#,+ writeDoubleX2OffAddr#,+ writeFloatX8OffAddr#,+ writeDoubleX4OffAddr#,+ writeFloatX16OffAddr#,+ writeDoubleX8OffAddr#,+ indexInt8ArrayAsInt8X16#,+ indexInt16ArrayAsInt16X8#,+ indexInt32ArrayAsInt32X4#,+ indexInt64ArrayAsInt64X2#,+ indexInt8ArrayAsInt8X32#,+ indexInt16ArrayAsInt16X16#,+ indexInt32ArrayAsInt32X8#,+ indexInt64ArrayAsInt64X4#,+ indexInt8ArrayAsInt8X64#,+ indexInt16ArrayAsInt16X32#,+ indexInt32ArrayAsInt32X16#,+ indexInt64ArrayAsInt64X8#,+ indexWord8ArrayAsWord8X16#,+ indexWord16ArrayAsWord16X8#,+ indexWord32ArrayAsWord32X4#,+ indexWord64ArrayAsWord64X2#,+ indexWord8ArrayAsWord8X32#,+ indexWord16ArrayAsWord16X16#,+ indexWord32ArrayAsWord32X8#,+ indexWord64ArrayAsWord64X4#,+ indexWord8ArrayAsWord8X64#,+ indexWord16ArrayAsWord16X32#,+ indexWord32ArrayAsWord32X16#,+ indexWord64ArrayAsWord64X8#,+ indexFloatArrayAsFloatX4#,+ indexDoubleArrayAsDoubleX2#,+ indexFloatArrayAsFloatX8#,+ indexDoubleArrayAsDoubleX4#,+ indexFloatArrayAsFloatX16#,+ indexDoubleArrayAsDoubleX8#,+ readInt8ArrayAsInt8X16#,+ readInt16ArrayAsInt16X8#,+ readInt32ArrayAsInt32X4#,+ readInt64ArrayAsInt64X2#,+ readInt8ArrayAsInt8X32#,+ readInt16ArrayAsInt16X16#,+ readInt32ArrayAsInt32X8#,+ readInt64ArrayAsInt64X4#,+ readInt8ArrayAsInt8X64#,+ readInt16ArrayAsInt16X32#,+ readInt32ArrayAsInt32X16#,+ readInt64ArrayAsInt64X8#,+ readWord8ArrayAsWord8X16#,+ readWord16ArrayAsWord16X8#,+ readWord32ArrayAsWord32X4#,+ readWord64ArrayAsWord64X2#,+ readWord8ArrayAsWord8X32#,+ readWord16ArrayAsWord16X16#,+ readWord32ArrayAsWord32X8#,+ readWord64ArrayAsWord64X4#,+ readWord8ArrayAsWord8X64#,+ readWord16ArrayAsWord16X32#,+ readWord32ArrayAsWord32X16#,+ readWord64ArrayAsWord64X8#,+ readFloatArrayAsFloatX4#,+ readDoubleArrayAsDoubleX2#,+ readFloatArrayAsFloatX8#,+ readDoubleArrayAsDoubleX4#,+ readFloatArrayAsFloatX16#,+ readDoubleArrayAsDoubleX8#,+ writeInt8ArrayAsInt8X16#,+ writeInt16ArrayAsInt16X8#,+ writeInt32ArrayAsInt32X4#,+ writeInt64ArrayAsInt64X2#,+ writeInt8ArrayAsInt8X32#,+ writeInt16ArrayAsInt16X16#,+ writeInt32ArrayAsInt32X8#,+ writeInt64ArrayAsInt64X4#,+ writeInt8ArrayAsInt8X64#,+ writeInt16ArrayAsInt16X32#,+ writeInt32ArrayAsInt32X16#,+ writeInt64ArrayAsInt64X8#,+ writeWord8ArrayAsWord8X16#,+ writeWord16ArrayAsWord16X8#,+ writeWord32ArrayAsWord32X4#,+ writeWord64ArrayAsWord64X2#,+ writeWord8ArrayAsWord8X32#,+ writeWord16ArrayAsWord16X16#,+ writeWord32ArrayAsWord32X8#,+ writeWord64ArrayAsWord64X4#,+ writeWord8ArrayAsWord8X64#,+ writeWord16ArrayAsWord16X32#,+ writeWord32ArrayAsWord32X16#,+ writeWord64ArrayAsWord64X8#,+ writeFloatArrayAsFloatX4#,+ writeDoubleArrayAsDoubleX2#,+ writeFloatArrayAsFloatX8#,+ writeDoubleArrayAsDoubleX4#,+ writeFloatArrayAsFloatX16#,+ writeDoubleArrayAsDoubleX8#,+ indexInt8OffAddrAsInt8X16#,+ indexInt16OffAddrAsInt16X8#,+ indexInt32OffAddrAsInt32X4#,+ indexInt64OffAddrAsInt64X2#,+ indexInt8OffAddrAsInt8X32#,+ indexInt16OffAddrAsInt16X16#,+ indexInt32OffAddrAsInt32X8#,+ indexInt64OffAddrAsInt64X4#,+ indexInt8OffAddrAsInt8X64#,+ indexInt16OffAddrAsInt16X32#,+ indexInt32OffAddrAsInt32X16#,+ indexInt64OffAddrAsInt64X8#,+ indexWord8OffAddrAsWord8X16#,+ indexWord16OffAddrAsWord16X8#,+ indexWord32OffAddrAsWord32X4#,+ indexWord64OffAddrAsWord64X2#,+ indexWord8OffAddrAsWord8X32#,+ indexWord16OffAddrAsWord16X16#,+ indexWord32OffAddrAsWord32X8#,+ indexWord64OffAddrAsWord64X4#,+ indexWord8OffAddrAsWord8X64#,+ indexWord16OffAddrAsWord16X32#,+ indexWord32OffAddrAsWord32X16#,+ indexWord64OffAddrAsWord64X8#,+ indexFloatOffAddrAsFloatX4#,+ indexDoubleOffAddrAsDoubleX2#,+ indexFloatOffAddrAsFloatX8#,+ indexDoubleOffAddrAsDoubleX4#,+ indexFloatOffAddrAsFloatX16#,+ indexDoubleOffAddrAsDoubleX8#,+ readInt8OffAddrAsInt8X16#,+ readInt16OffAddrAsInt16X8#,+ readInt32OffAddrAsInt32X4#,+ readInt64OffAddrAsInt64X2#,+ readInt8OffAddrAsInt8X32#,+ readInt16OffAddrAsInt16X16#,+ readInt32OffAddrAsInt32X8#,+ readInt64OffAddrAsInt64X4#,+ readInt8OffAddrAsInt8X64#,+ readInt16OffAddrAsInt16X32#,+ readInt32OffAddrAsInt32X16#,+ readInt64OffAddrAsInt64X8#,+ readWord8OffAddrAsWord8X16#,+ readWord16OffAddrAsWord16X8#,+ readWord32OffAddrAsWord32X4#,+ readWord64OffAddrAsWord64X2#,+ readWord8OffAddrAsWord8X32#,+ readWord16OffAddrAsWord16X16#,+ readWord32OffAddrAsWord32X8#,+ readWord64OffAddrAsWord64X4#,+ readWord8OffAddrAsWord8X64#,+ readWord16OffAddrAsWord16X32#,+ readWord32OffAddrAsWord32X16#,+ readWord64OffAddrAsWord64X8#,+ readFloatOffAddrAsFloatX4#,+ readDoubleOffAddrAsDoubleX2#,+ readFloatOffAddrAsFloatX8#,+ readDoubleOffAddrAsDoubleX4#,+ readFloatOffAddrAsFloatX16#,+ readDoubleOffAddrAsDoubleX8#,+ writeInt8OffAddrAsInt8X16#,+ writeInt16OffAddrAsInt16X8#,+ writeInt32OffAddrAsInt32X4#,+ writeInt64OffAddrAsInt64X2#,+ writeInt8OffAddrAsInt8X32#,+ writeInt16OffAddrAsInt16X16#,+ writeInt32OffAddrAsInt32X8#,+ writeInt64OffAddrAsInt64X4#,+ writeInt8OffAddrAsInt8X64#,+ writeInt16OffAddrAsInt16X32#,+ writeInt32OffAddrAsInt32X16#,+ writeInt64OffAddrAsInt64X8#,+ writeWord8OffAddrAsWord8X16#,+ writeWord16OffAddrAsWord16X8#,+ writeWord32OffAddrAsWord32X4#,+ writeWord64OffAddrAsWord64X2#,+ writeWord8OffAddrAsWord8X32#,+ writeWord16OffAddrAsWord16X16#,+ writeWord32OffAddrAsWord32X8#,+ writeWord64OffAddrAsWord64X4#,+ writeWord8OffAddrAsWord8X64#,+ writeWord16OffAddrAsWord16X32#,+ writeWord32OffAddrAsWord32X16#,+ writeWord64OffAddrAsWord64X8#,+ writeFloatOffAddrAsFloatX4#,+ writeDoubleOffAddrAsDoubleX2#,+ writeFloatOffAddrAsFloatX8#,+ writeDoubleOffAddrAsDoubleX4#,+ writeFloatOffAddrAsFloatX16#,+ writeDoubleOffAddrAsDoubleX8#,+ +-- * Prefetch+-- |Prefetch operations: Note how every prefetch operation has a name+-- with the pattern prefetch*N#, where N is either 0,1,2, or 3.+-- +-- This suffix number, N, is the \"locality level\" of the prefetch, following the+-- convention in GCC and other compilers.+-- Higher locality numbers correspond to the memory being loaded in more+-- levels of the cpu cache, and being retained after initial use. The naming+-- convention follows the naming convention of the prefetch intrinsic found+-- in the GCC and Clang C compilers.+-- +-- On the LLVM backend, prefetch*N# uses the LLVM prefetch intrinsic+-- with locality level N. The code generated by LLVM is target architecture+-- dependent, but should agree with the GHC NCG on x86 systems.+-- +-- On the Sparc and PPC native backends, prefetch*N is a No-Op.+-- +-- On the x86 NCG, N=0 will generate prefetchNTA,+-- N=1 generates prefetcht2, N=2 generates prefetcht1, and+-- N=3 generates prefetcht0.+-- +-- For streaming workloads, the prefetch*0 operations are recommended.+-- For workloads which do many reads or writes to a memory location in a short period of time,+-- prefetch*3 operations are recommended.+-- +-- For further reading about prefetch and associated systems performance optimization,+-- the instruction set and optimization manuals by Intel and other CPU vendors are+-- excellent starting place.+-- +-- +-- The \"Intel 64 and IA-32 Architectures Optimization Reference Manual\" is+-- especially a helpful read, even if your software is meant for other CPU+-- architectures or vendor hardware. The manual can be found at+-- http:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/64-ia-32-architectures-optimization-manual.html .+-- +-- The @prefetch*@ family of operations has the order of operations+-- determined by passing around the @State#@ token.+-- +-- To get a \"pure\" version of these operations, use @inlinePerformIO@ which is quite safe in this context.+-- +-- It is important to note that while the prefetch operations will never change the+-- answer to a pure computation, They CAN change the memory locations resident+-- in a CPU cache and that may change the performance and timing characteristics+-- of an application. The prefetch operations are marked has_side_effects=True+-- to reflect that these operations have side effects with respect to the runtime+-- performance characteristics of the resulting code. Additionally, if the prefetchValue+-- operations did not have this attribute, GHC does a float out transformation that+-- results in a let\/app violation, at least with the current design.+-- ++ prefetchByteArray3#,+ prefetchMutableByteArray3#,+ prefetchAddr3#,+ prefetchValue3#,+ prefetchByteArray2#,+ prefetchMutableByteArray2#,+ prefetchAddr2#,+ prefetchValue2#,+ prefetchByteArray1#,+ prefetchMutableByteArray1#,+ prefetchAddr1#,+ prefetchValue1#,+ prefetchByteArray0#,+ prefetchMutableByteArray0#,+ prefetchAddr0#,+ prefetchValue0#,+) where++{-+has_side_effects = False+out_of_line = False+can_fail = False+commutable = False+code_size = { primOpCodeSizeDefault }+strictness = { \ arity -> mkClosedStrictSig (replicate arity topDmd) topRes }+fixity = Nothing+llvm_only = False++deprecated_msg = { }+-}+import GHC.Types (Coercible)+default ()++-- |The builtin function type, written in infix form as @a -> b@ and+-- in prefix form as @(->) a b@. Values of this type are functions+-- taking inputs of type @a@ and producing outputs of type @b@.+-- +-- Note that @a -> b@ permits levity-polymorphism in both @a@ and+-- @b@, so that types like @Int\# -> Int\#@ can still be well-kinded.+-- +infixr -1 ->+data (->) a b++data Char#++gtChar# :: Char# -> Char# -> Int#+gtChar# = gtChar#++geChar# :: Char# -> Char# -> Int#+geChar# = geChar#++eqChar# :: Char# -> Char# -> Int#+eqChar# = eqChar#++neChar# :: Char# -> Char# -> Int#+neChar# = neChar#++ltChar# :: Char# -> Char# -> Int#+ltChar# = ltChar#++leChar# :: Char# -> Char# -> Int#+leChar# = leChar#++ord# :: Char# -> Int#+ord# = ord#++data Int#++infixl 6 +#+(+#) :: Int# -> Int# -> Int#+(+#) = (+#)++infixl 6 -#+(-#) :: Int# -> Int# -> Int#+(-#) = (-#)++-- |Low word of signed integer multiply.+infixl 7 *#+(*#) :: Int# -> Int# -> Int#+(*#) = (*#)++-- |Return non-zero if there is any possibility that the upper word of a+-- signed integer multiply might contain useful information. Return+-- zero only if you are completely sure that no overflow can occur.+-- On a 32-bit platform, the recommended implementation is to do a+-- 32 x 32 -> 64 signed multiply, and subtract result[63:32] from+-- (result[31] >>signed 31). If this is zero, meaning that the+-- upper word is merely a sign extension of the lower one, no+-- overflow can occur.+-- +-- On a 64-bit platform it is not always possible to+-- acquire the top 64 bits of the result. Therefore, a recommended+-- implementation is to take the absolute value of both operands, and+-- return 0 iff bits[63:31] of them are zero, since that means that their+-- magnitudes fit within 31 bits, so the magnitude of the product must fit+-- into 62 bits.+-- +-- If in doubt, return non-zero, but do make an effort to create the+-- correct answer for small args, since otherwise the performance of+-- @(*) :: Integer -> Integer -> Integer@ will be poor.+-- +mulIntMayOflo# :: Int# -> Int# -> Int#+mulIntMayOflo# = mulIntMayOflo#++-- |Rounds towards zero. The behavior is undefined if the second argument is+-- zero.+-- +-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotInt# :: Int# -> Int# -> Int#+quotInt# = quotInt#++-- |Satisfies @(quotInt\# x y) *\# y +\# (remInt\# x y) == x@. The+-- behavior is undefined if the second argument is zero.+-- +-- +-- __/Warning:/__ this can fail with an unchecked exception.+remInt# :: Int# -> Int# -> Int#+remInt# = remInt#++-- |Rounds towards zero.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotRemInt# :: Int# -> Int# -> (# Int#,Int# #)+quotRemInt# = quotRemInt#++-- |Bitwise \"and\".+andI# :: Int# -> Int# -> Int#+andI# = andI#++-- |Bitwise \"or\".+orI# :: Int# -> Int# -> Int#+orI# = orI#++-- |Bitwise \"xor\".+xorI# :: Int# -> Int# -> Int#+xorI# = xorI#++-- |Bitwise \"not\", also known as the binary complement.+notI# :: Int# -> Int#+notI# = notI#++-- |Unary negation.+-- Since the negative @Int#@ range extends one further than the+-- positive range, @negateInt#@ of the most negative number is an+-- identity operation. This way, @negateInt#@ is always its own inverse.+negateInt# :: Int# -> Int#+negateInt# = negateInt#++-- |Add signed integers reporting overflow.+-- First member of result is the sum truncated to an @Int#@;+-- second member is zero if the true sum fits in an @Int#@,+-- nonzero if overflow occurred (the sum is either too large+-- or too small to fit in an @Int#@).+addIntC# :: Int# -> Int# -> (# Int#,Int# #)+addIntC# = addIntC#++-- |Subtract signed integers reporting overflow.+-- First member of result is the difference truncated to an @Int#@;+-- second member is zero if the true difference fits in an @Int#@,+-- nonzero if overflow occurred (the difference is either too large+-- or too small to fit in an @Int#@).+subIntC# :: Int# -> Int# -> (# Int#,Int# #)+subIntC# = subIntC#++infix 4 >#+(>#) :: Int# -> Int# -> Int#+(>#) = (>#)++infix 4 >=#+(>=#) :: Int# -> Int# -> Int#+(>=#) = (>=#)++infix 4 ==#+(==#) :: Int# -> Int# -> Int#+(==#) = (==#)++infix 4 /=#+(/=#) :: Int# -> Int# -> Int#+(/=#) = (/=#)++infix 4 <#+(<#) :: Int# -> Int# -> Int#+(<#) = (<#)++infix 4 <=#+(<=#) :: Int# -> Int# -> Int#+(<=#) = (<=#)++chr# :: Int# -> Char#+chr# = chr#++int2Word# :: Int# -> Word#+int2Word# = int2Word#++int2Float# :: Int# -> Float#+int2Float# = int2Float#++int2Double# :: Int# -> Double#+int2Double# = int2Double#++word2Float# :: Word# -> Float#+word2Float# = word2Float#++word2Double# :: Word# -> Double#+word2Double# = word2Double#++-- |Shift left. Result undefined if shift amount is not+-- in the range 0 to word size - 1 inclusive.+uncheckedIShiftL# :: Int# -> Int# -> Int#+uncheckedIShiftL# = uncheckedIShiftL#++-- |Shift right arithmetic. Result undefined if shift amount is not+-- in the range 0 to word size - 1 inclusive.+uncheckedIShiftRA# :: Int# -> Int# -> Int#+uncheckedIShiftRA# = uncheckedIShiftRA#++-- |Shift right logical. Result undefined if shift amount is not+-- in the range 0 to word size - 1 inclusive.+uncheckedIShiftRL# :: Int# -> Int# -> Int#+uncheckedIShiftRL# = uncheckedIShiftRL#++data Int8#++extendInt8# :: Int8# -> Int#+extendInt8# = extendInt8#++narrowInt8# :: Int# -> Int8#+narrowInt8# = narrowInt8#++negateInt8# :: Int8# -> Int8#+negateInt8# = negateInt8#++plusInt8# :: Int8# -> Int8# -> Int8#+plusInt8# = plusInt8#++subInt8# :: Int8# -> Int8# -> Int8#+subInt8# = subInt8#++timesInt8# :: Int8# -> Int8# -> Int8#+timesInt8# = timesInt8#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotInt8# :: Int8# -> Int8# -> Int8#+quotInt8# = quotInt8#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+remInt8# :: Int8# -> Int8# -> Int8#+remInt8# = remInt8#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotRemInt8# :: Int8# -> Int8# -> (# Int8#,Int8# #)+quotRemInt8# = quotRemInt8#++eqInt8# :: Int8# -> Int8# -> Int#+eqInt8# = eqInt8#++geInt8# :: Int8# -> Int8# -> Int#+geInt8# = geInt8#++gtInt8# :: Int8# -> Int8# -> Int#+gtInt8# = gtInt8#++leInt8# :: Int8# -> Int8# -> Int#+leInt8# = leInt8#++ltInt8# :: Int8# -> Int8# -> Int#+ltInt8# = ltInt8#++neInt8# :: Int8# -> Int8# -> Int#+neInt8# = neInt8#++data Word8#++extendWord8# :: Word8# -> Word#+extendWord8# = extendWord8#++narrowWord8# :: Word# -> Word8#+narrowWord8# = narrowWord8#++notWord8# :: Word8# -> Word8#+notWord8# = notWord8#++plusWord8# :: Word8# -> Word8# -> Word8#+plusWord8# = plusWord8#++subWord8# :: Word8# -> Word8# -> Word8#+subWord8# = subWord8#++timesWord8# :: Word8# -> Word8# -> Word8#+timesWord8# = timesWord8#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotWord8# :: Word8# -> Word8# -> Word8#+quotWord8# = quotWord8#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+remWord8# :: Word8# -> Word8# -> Word8#+remWord8# = remWord8#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotRemWord8# :: Word8# -> Word8# -> (# Word8#,Word8# #)+quotRemWord8# = quotRemWord8#++eqWord8# :: Word8# -> Word8# -> Int#+eqWord8# = eqWord8#++geWord8# :: Word8# -> Word8# -> Int#+geWord8# = geWord8#++gtWord8# :: Word8# -> Word8# -> Int#+gtWord8# = gtWord8#++leWord8# :: Word8# -> Word8# -> Int#+leWord8# = leWord8#++ltWord8# :: Word8# -> Word8# -> Int#+ltWord8# = ltWord8#++neWord8# :: Word8# -> Word8# -> Int#+neWord8# = neWord8#++data Int16#++extendInt16# :: Int16# -> Int#+extendInt16# = extendInt16#++narrowInt16# :: Int# -> Int16#+narrowInt16# = narrowInt16#++negateInt16# :: Int16# -> Int16#+negateInt16# = negateInt16#++plusInt16# :: Int16# -> Int16# -> Int16#+plusInt16# = plusInt16#++subInt16# :: Int16# -> Int16# -> Int16#+subInt16# = subInt16#++timesInt16# :: Int16# -> Int16# -> Int16#+timesInt16# = timesInt16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotInt16# :: Int16# -> Int16# -> Int16#+quotInt16# = quotInt16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+remInt16# :: Int16# -> Int16# -> Int16#+remInt16# = remInt16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotRemInt16# :: Int16# -> Int16# -> (# Int16#,Int16# #)+quotRemInt16# = quotRemInt16#++eqInt16# :: Int16# -> Int16# -> Int#+eqInt16# = eqInt16#++geInt16# :: Int16# -> Int16# -> Int#+geInt16# = geInt16#++gtInt16# :: Int16# -> Int16# -> Int#+gtInt16# = gtInt16#++leInt16# :: Int16# -> Int16# -> Int#+leInt16# = leInt16#++ltInt16# :: Int16# -> Int16# -> Int#+ltInt16# = ltInt16#++neInt16# :: Int16# -> Int16# -> Int#+neInt16# = neInt16#++data Word16#++extendWord16# :: Word16# -> Word#+extendWord16# = extendWord16#++narrowWord16# :: Word# -> Word16#+narrowWord16# = narrowWord16#++notWord16# :: Word16# -> Word16#+notWord16# = notWord16#++plusWord16# :: Word16# -> Word16# -> Word16#+plusWord16# = plusWord16#++subWord16# :: Word16# -> Word16# -> Word16#+subWord16# = subWord16#++timesWord16# :: Word16# -> Word16# -> Word16#+timesWord16# = timesWord16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotWord16# :: Word16# -> Word16# -> Word16#+quotWord16# = quotWord16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+remWord16# :: Word16# -> Word16# -> Word16#+remWord16# = remWord16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotRemWord16# :: Word16# -> Word16# -> (# Word16#,Word16# #)+quotRemWord16# = quotRemWord16#++eqWord16# :: Word16# -> Word16# -> Int#+eqWord16# = eqWord16#++geWord16# :: Word16# -> Word16# -> Int#+geWord16# = geWord16#++gtWord16# :: Word16# -> Word16# -> Int#+gtWord16# = gtWord16#++leWord16# :: Word16# -> Word16# -> Int#+leWord16# = leWord16#++ltWord16# :: Word16# -> Word16# -> Int#+ltWord16# = ltWord16#++neWord16# :: Word16# -> Word16# -> Int#+neWord16# = neWord16#++data Word#++plusWord# :: Word# -> Word# -> Word#+plusWord# = plusWord#++-- |Add unsigned integers reporting overflow.+-- The first element of the pair is the result. The second element is+-- the carry flag, which is nonzero on overflow. See also @plusWord2#@.+addWordC# :: Word# -> Word# -> (# Word#,Int# #)+addWordC# = addWordC#++-- |Subtract unsigned integers reporting overflow.+-- The first element of the pair is the result. The second element is+-- the carry flag, which is nonzero on overflow.+subWordC# :: Word# -> Word# -> (# Word#,Int# #)+subWordC# = subWordC#++-- |Add unsigned integers, with the high part (carry) in the first+-- component of the returned pair and the low part in the second+-- component of the pair. See also @addWordC#@.+plusWord2# :: Word# -> Word# -> (# Word#,Word# #)+plusWord2# = plusWord2#++minusWord# :: Word# -> Word# -> Word#+minusWord# = minusWord#++timesWord# :: Word# -> Word# -> Word#+timesWord# = timesWord#++timesWord2# :: Word# -> Word# -> (# Word#,Word# #)+timesWord2# = timesWord2#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotWord# :: Word# -> Word# -> Word#+quotWord# = quotWord#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+remWord# :: Word# -> Word# -> Word#+remWord# = remWord#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotRemWord# :: Word# -> Word# -> (# Word#,Word# #)+quotRemWord# = quotRemWord#++-- | Takes high word of dividend, then low word of dividend, then divisor.+-- Requires that high word \< divisor.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+quotRemWord2# :: Word# -> Word# -> Word# -> (# Word#,Word# #)+quotRemWord2# = quotRemWord2#++and# :: Word# -> Word# -> Word#+and# = and#++or# :: Word# -> Word# -> Word#+or# = or#++xor# :: Word# -> Word# -> Word#+xor# = xor#++not# :: Word# -> Word#+not# = not#++-- |Shift left logical. Result undefined if shift amount is not+-- in the range 0 to word size - 1 inclusive.+uncheckedShiftL# :: Word# -> Int# -> Word#+uncheckedShiftL# = uncheckedShiftL#++-- |Shift right logical. Result undefined if shift amount is not+-- in the range 0 to word size - 1 inclusive.+uncheckedShiftRL# :: Word# -> Int# -> Word#+uncheckedShiftRL# = uncheckedShiftRL#++word2Int# :: Word# -> Int#+word2Int# = word2Int#++gtWord# :: Word# -> Word# -> Int#+gtWord# = gtWord#++geWord# :: Word# -> Word# -> Int#+geWord# = geWord#++eqWord# :: Word# -> Word# -> Int#+eqWord# = eqWord#++neWord# :: Word# -> Word# -> Int#+neWord# = neWord#++ltWord# :: Word# -> Word# -> Int#+ltWord# = ltWord#++leWord# :: Word# -> Word# -> Int#+leWord# = leWord#++-- |Count the number of set bits in the lower 8 bits of a word.+popCnt8# :: Word# -> Word#+popCnt8# = popCnt8#++-- |Count the number of set bits in the lower 16 bits of a word.+popCnt16# :: Word# -> Word#+popCnt16# = popCnt16#++-- |Count the number of set bits in the lower 32 bits of a word.+popCnt32# :: Word# -> Word#+popCnt32# = popCnt32#++-- |Count the number of set bits in a 64-bit word.+popCnt64# :: Word# -> Word#+popCnt64# = popCnt64#++-- |Count the number of set bits in a word.+popCnt# :: Word# -> Word#+popCnt# = popCnt#++-- |Deposit bits to lower 8 bits of a word at locations specified by a mask.+pdep8# :: Word# -> Word# -> Word#+pdep8# = pdep8#++-- |Deposit bits to lower 16 bits of a word at locations specified by a mask.+pdep16# :: Word# -> Word# -> Word#+pdep16# = pdep16#++-- |Deposit bits to lower 32 bits of a word at locations specified by a mask.+pdep32# :: Word# -> Word# -> Word#+pdep32# = pdep32#++-- |Deposit bits to a word at locations specified by a mask.+pdep64# :: Word# -> Word# -> Word#+pdep64# = pdep64#++-- |Deposit bits to a word at locations specified by a mask.+pdep# :: Word# -> Word# -> Word#+pdep# = pdep#++-- |Extract bits from lower 8 bits of a word at locations specified by a mask.+pext8# :: Word# -> Word# -> Word#+pext8# = pext8#++-- |Extract bits from lower 16 bits of a word at locations specified by a mask.+pext16# :: Word# -> Word# -> Word#+pext16# = pext16#++-- |Extract bits from lower 32 bits of a word at locations specified by a mask.+pext32# :: Word# -> Word# -> Word#+pext32# = pext32#++-- |Extract bits from a word at locations specified by a mask.+pext64# :: Word# -> Word# -> Word#+pext64# = pext64#++-- |Extract bits from a word at locations specified by a mask.+pext# :: Word# -> Word# -> Word#+pext# = pext#++-- |Count leading zeros in the lower 8 bits of a word.+clz8# :: Word# -> Word#+clz8# = clz8#++-- |Count leading zeros in the lower 16 bits of a word.+clz16# :: Word# -> Word#+clz16# = clz16#++-- |Count leading zeros in the lower 32 bits of a word.+clz32# :: Word# -> Word#+clz32# = clz32#++-- |Count leading zeros in a 64-bit word.+clz64# :: Word# -> Word#+clz64# = clz64#++-- |Count leading zeros in a word.+clz# :: Word# -> Word#+clz# = clz#++-- |Count trailing zeros in the lower 8 bits of a word.+ctz8# :: Word# -> Word#+ctz8# = ctz8#++-- |Count trailing zeros in the lower 16 bits of a word.+ctz16# :: Word# -> Word#+ctz16# = ctz16#++-- |Count trailing zeros in the lower 32 bits of a word.+ctz32# :: Word# -> Word#+ctz32# = ctz32#++-- |Count trailing zeros in a 64-bit word.+ctz64# :: Word# -> Word#+ctz64# = ctz64#++-- |Count trailing zeros in a word.+ctz# :: Word# -> Word#+ctz# = ctz#++-- |Swap bytes in the lower 16 bits of a word. The higher bytes are undefined. +byteSwap16# :: Word# -> Word#+byteSwap16# = byteSwap16#++-- |Swap bytes in the lower 32 bits of a word. The higher bytes are undefined. +byteSwap32# :: Word# -> Word#+byteSwap32# = byteSwap32#++-- |Swap bytes in a 64 bits of a word.+byteSwap64# :: Word# -> Word#+byteSwap64# = byteSwap64#++-- |Swap bytes in a word.+byteSwap# :: Word# -> Word#+byteSwap# = byteSwap#++-- |Reverse the order of the bits in a 8-bit word.+bitReverse8# :: Word# -> Word#+bitReverse8# = bitReverse8#++-- |Reverse the order of the bits in a 16-bit word.+bitReverse16# :: Word# -> Word#+bitReverse16# = bitReverse16#++-- |Reverse the order of the bits in a 32-bit word.+bitReverse32# :: Word# -> Word#+bitReverse32# = bitReverse32#++-- |Reverse the order of the bits in a 64-bit word.+bitReverse64# :: Word# -> Word#+bitReverse64# = bitReverse64#++-- |Reverse the order of the bits in a word.+bitReverse# :: Word# -> Word#+bitReverse# = bitReverse#++narrow8Int# :: Int# -> Int#+narrow8Int# = narrow8Int#++narrow16Int# :: Int# -> Int#+narrow16Int# = narrow16Int#++narrow32Int# :: Int# -> Int#+narrow32Int# = narrow32Int#++narrow8Word# :: Word# -> Word#+narrow8Word# = narrow8Word#++narrow16Word# :: Word# -> Word#+narrow16Word# = narrow16Word#++narrow32Word# :: Word# -> Word#+narrow32Word# = narrow32Word#++data Double#++infix 4 >##+(>##) :: Double# -> Double# -> Int#+(>##) = (>##)++infix 4 >=##+(>=##) :: Double# -> Double# -> Int#+(>=##) = (>=##)++infix 4 ==##+(==##) :: Double# -> Double# -> Int#+(==##) = (==##)++infix 4 /=##+(/=##) :: Double# -> Double# -> Int#+(/=##) = (/=##)++infix 4 <##+(<##) :: Double# -> Double# -> Int#+(<##) = (<##)++infix 4 <=##+(<=##) :: Double# -> Double# -> Int#+(<=##) = (<=##)++infixl 6 +##+(+##) :: Double# -> Double# -> Double#+(+##) = (+##)++infixl 6 -##+(-##) :: Double# -> Double# -> Double#+(-##) = (-##)++infixl 7 *##+(*##) :: Double# -> Double# -> Double#+(*##) = (*##)++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+infixl 7 /##+(/##) :: Double# -> Double# -> Double#+(/##) = (/##)++negateDouble# :: Double# -> Double#+negateDouble# = negateDouble#++fabsDouble# :: Double# -> Double#+fabsDouble# = fabsDouble#++-- |Truncates a @Double#@ value to the nearest @Int#@.+-- Results are undefined if the truncation if truncation yields+-- a value outside the range of @Int#@.+double2Int# :: Double# -> Int#+double2Int# = double2Int#++double2Float# :: Double# -> Float#+double2Float# = double2Float#++expDouble# :: Double# -> Double#+expDouble# = expDouble#++expm1Double# :: Double# -> Double#+expm1Double# = expm1Double#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+logDouble# :: Double# -> Double#+logDouble# = logDouble#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+log1pDouble# :: Double# -> Double#+log1pDouble# = log1pDouble#++sqrtDouble# :: Double# -> Double#+sqrtDouble# = sqrtDouble#++sinDouble# :: Double# -> Double#+sinDouble# = sinDouble#++cosDouble# :: Double# -> Double#+cosDouble# = cosDouble#++tanDouble# :: Double# -> Double#+tanDouble# = tanDouble#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+asinDouble# :: Double# -> Double#+asinDouble# = asinDouble#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+acosDouble# :: Double# -> Double#+acosDouble# = acosDouble#++atanDouble# :: Double# -> Double#+atanDouble# = atanDouble#++sinhDouble# :: Double# -> Double#+sinhDouble# = sinhDouble#++coshDouble# :: Double# -> Double#+coshDouble# = coshDouble#++tanhDouble# :: Double# -> Double#+tanhDouble# = tanhDouble#++asinhDouble# :: Double# -> Double#+asinhDouble# = asinhDouble#++acoshDouble# :: Double# -> Double#+acoshDouble# = acoshDouble#++atanhDouble# :: Double# -> Double#+atanhDouble# = atanhDouble#++-- |Exponentiation.+(**##) :: Double# -> Double# -> Double#+(**##) = (**##)++-- |Convert to integer.+-- First component of the result is -1 or 1, indicating the sign of the+-- mantissa. The next two are the high and low 32 bits of the mantissa+-- respectively, and the last is the exponent.+decodeDouble_2Int# :: Double# -> (# Int#,Word#,Word#,Int# #)+decodeDouble_2Int# = decodeDouble_2Int#++-- |Decode @Double\#@ into mantissa and base-2 exponent.+decodeDouble_Int64# :: Double# -> (# Int#,Int# #)+decodeDouble_Int64# = decodeDouble_Int64#++data Float#++gtFloat# :: Float# -> Float# -> Int#+gtFloat# = gtFloat#++geFloat# :: Float# -> Float# -> Int#+geFloat# = geFloat#++eqFloat# :: Float# -> Float# -> Int#+eqFloat# = eqFloat#++neFloat# :: Float# -> Float# -> Int#+neFloat# = neFloat#++ltFloat# :: Float# -> Float# -> Int#+ltFloat# = ltFloat#++leFloat# :: Float# -> Float# -> Int#+leFloat# = leFloat#++plusFloat# :: Float# -> Float# -> Float#+plusFloat# = plusFloat#++minusFloat# :: Float# -> Float# -> Float#+minusFloat# = minusFloat#++timesFloat# :: Float# -> Float# -> Float#+timesFloat# = timesFloat#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+divideFloat# :: Float# -> Float# -> Float#+divideFloat# = divideFloat#++negateFloat# :: Float# -> Float#+negateFloat# = negateFloat#++fabsFloat# :: Float# -> Float#+fabsFloat# = fabsFloat#++-- |Truncates a @Float#@ value to the nearest @Int#@.+-- Results are undefined if the truncation if truncation yields+-- a value outside the range of @Int#@.+float2Int# :: Float# -> Int#+float2Int# = float2Int#++expFloat# :: Float# -> Float#+expFloat# = expFloat#++expm1Float# :: Float# -> Float#+expm1Float# = expm1Float#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+logFloat# :: Float# -> Float#+logFloat# = logFloat#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+log1pFloat# :: Float# -> Float#+log1pFloat# = log1pFloat#++sqrtFloat# :: Float# -> Float#+sqrtFloat# = sqrtFloat#++sinFloat# :: Float# -> Float#+sinFloat# = sinFloat#++cosFloat# :: Float# -> Float#+cosFloat# = cosFloat#++tanFloat# :: Float# -> Float#+tanFloat# = tanFloat#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+asinFloat# :: Float# -> Float#+asinFloat# = asinFloat#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+acosFloat# :: Float# -> Float#+acosFloat# = acosFloat#++atanFloat# :: Float# -> Float#+atanFloat# = atanFloat#++sinhFloat# :: Float# -> Float#+sinhFloat# = sinhFloat#++coshFloat# :: Float# -> Float#+coshFloat# = coshFloat#++tanhFloat# :: Float# -> Float#+tanhFloat# = tanhFloat#++asinhFloat# :: Float# -> Float#+asinhFloat# = asinhFloat#++acoshFloat# :: Float# -> Float#+acoshFloat# = acoshFloat#++atanhFloat# :: Float# -> Float#+atanhFloat# = atanhFloat#++powerFloat# :: Float# -> Float# -> Float#+powerFloat# = powerFloat#++float2Double# :: Float# -> Double#+float2Double# = float2Double#++-- |Convert to integers.+-- First @Int\#@ in result is the mantissa; second is the exponent.+decodeFloat_Int# :: Float# -> (# Int#,Int# #)+decodeFloat_Int# = decodeFloat_Int#++data Array# a++data MutableArray# s a++-- |Create a new mutable array with the specified number of elements,+-- in the specified state thread,+-- with each element containing the specified initial value.+newArray# :: Int# -> a -> State# s -> (# State# s,MutableArray# s a #)+newArray# = newArray#++sameMutableArray# :: MutableArray# s a -> MutableArray# s a -> Int#+sameMutableArray# = sameMutableArray#++-- |Read from specified index of mutable array. Result is not yet evaluated.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readArray# :: MutableArray# s a -> Int# -> State# s -> (# State# s,a #)+readArray# = readArray#++-- |Write to specified index of mutable array.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeArray# :: MutableArray# s a -> Int# -> a -> State# s -> State# s+writeArray# = writeArray#++-- |Return the number of elements in the array.+sizeofArray# :: Array# a -> Int#+sizeofArray# = sizeofArray#++-- |Return the number of elements in the array.+sizeofMutableArray# :: MutableArray# s a -> Int#+sizeofMutableArray# = sizeofMutableArray#++-- |Read from the specified index of an immutable array. The result is packaged+-- into an unboxed unary tuple; the result itself is not yet+-- evaluated. Pattern matching on the tuple forces the indexing of the+-- array to happen but does not evaluate the element itself. Evaluating+-- the thunk prevents additional thunks from building up on the+-- heap. Avoiding these thunks, in turn, reduces references to the+-- argument array, allowing it to be garbage collected more promptly.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexArray# :: Array# a -> Int# -> (# a #)+indexArray# = indexArray#++-- |Make a mutable array immutable, without copying.+unsafeFreezeArray# :: MutableArray# s a -> State# s -> (# State# s,Array# a #)+unsafeFreezeArray# = unsafeFreezeArray#++-- |Make an immutable array mutable, without copying.+unsafeThawArray# :: Array# a -> State# s -> (# State# s,MutableArray# s a #)+unsafeThawArray# = unsafeThawArray#++-- |Given a source array, an offset into the source array, a+-- destination array, an offset into the destination array, and a+-- number of elements to copy, copy the elements from the source array+-- to the destination array. Both arrays must fully contain the+-- specified ranges, but this is not checked. The two arrays must not+-- be the same array in different states, but this is not checked+-- either.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+copyArray# :: Array# a -> Int# -> MutableArray# s a -> Int# -> Int# -> State# s -> State# s+copyArray# = copyArray#++-- |Given a source array, an offset into the source array, a+-- destination array, an offset into the destination array, and a+-- number of elements to copy, copy the elements from the source array+-- to the destination array. Both arrays must fully contain the+-- specified ranges, but this is not checked. In the case where+-- the source and destination are the same array the source and+-- destination regions may overlap.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+copyMutableArray# :: MutableArray# s a -> Int# -> MutableArray# s a -> Int# -> Int# -> State# s -> State# s+copyMutableArray# = copyMutableArray#++-- |Given a source array, an offset into the source array, and a number+-- of elements to copy, create a new array with the elements from the+-- source array. The provided array must fully contain the specified+-- range, but this is not checked.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+cloneArray# :: Array# a -> Int# -> Int# -> Array# a+cloneArray# = cloneArray#++-- |Given a source array, an offset into the source array, and a number+-- of elements to copy, create a new array with the elements from the+-- source array. The provided array must fully contain the specified+-- range, but this is not checked.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+cloneMutableArray# :: MutableArray# s a -> Int# -> Int# -> State# s -> (# State# s,MutableArray# s a #)+cloneMutableArray# = cloneMutableArray#++-- |Given a source array, an offset into the source array, and a number+-- of elements to copy, create a new array with the elements from the+-- source array. The provided array must fully contain the specified+-- range, but this is not checked.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+freezeArray# :: MutableArray# s a -> Int# -> Int# -> State# s -> (# State# s,Array# a #)+freezeArray# = freezeArray#++-- |Given a source array, an offset into the source array, and a number+-- of elements to copy, create a new array with the elements from the+-- source array. The provided array must fully contain the specified+-- range, but this is not checked.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+thawArray# :: Array# a -> Int# -> Int# -> State# s -> (# State# s,MutableArray# s a #)+thawArray# = thawArray#++-- |Given an array, an offset, the expected old value, and+-- the new value, perform an atomic compare and swap (i.e. write the new+-- value if the current value and the old value are the same pointer).+-- Returns 0 if the swap succeeds and 1 if it fails. Additionally, returns+-- the element at the offset after the operation completes. This means that+-- on a success the new value is returned, and on a failure the actual old+-- value (not the expected one) is returned. Implies a full memory barrier.+-- The use of a pointer equality on a lifted value makes this function harder+-- to use correctly than @casIntArray\#@. All of the difficulties+-- of using @reallyUnsafePtrEquality\#@ correctly apply to+-- @casArray\#@ as well.+-- +casArray# :: MutableArray# s a -> Int# -> a -> a -> State# s -> (# State# s,Int#,a #)+casArray# = casArray#++data SmallArray# a++data SmallMutableArray# s a++-- |Create a new mutable array with the specified number of elements,+-- in the specified state thread,+-- with each element containing the specified initial value.+newSmallArray# :: Int# -> a -> State# s -> (# State# s,SmallMutableArray# s a #)+newSmallArray# = newSmallArray#++sameSmallMutableArray# :: SmallMutableArray# s a -> SmallMutableArray# s a -> Int#+sameSmallMutableArray# = sameSmallMutableArray#++-- |Shrink mutable array to new specified size, in+-- the specified state thread. The new size argument must be less than or+-- equal to the current size as reported by @sizeofSmallMutableArray\#@.+shrinkSmallMutableArray# :: SmallMutableArray# s a -> Int# -> State# s -> State# s+shrinkSmallMutableArray# = shrinkSmallMutableArray#++-- |Read from specified index of mutable array. Result is not yet evaluated.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readSmallArray# :: SmallMutableArray# s a -> Int# -> State# s -> (# State# s,a #)+readSmallArray# = readSmallArray#++-- |Write to specified index of mutable array.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeSmallArray# :: SmallMutableArray# s a -> Int# -> a -> State# s -> State# s+writeSmallArray# = writeSmallArray#++-- |Return the number of elements in the array.+sizeofSmallArray# :: SmallArray# a -> Int#+sizeofSmallArray# = sizeofSmallArray#++-- |Return the number of elements in the array. Note that this is deprecated+-- as it is unsafe in the presence of resize operations on the+-- same byte array.+{-# DEPRECATED sizeofSmallMutableArray# " Use 'getSizeofSmallMutableArray#' instead " #-}+sizeofSmallMutableArray# :: SmallMutableArray# s a -> Int#+sizeofSmallMutableArray# = sizeofSmallMutableArray#++-- |Return the number of elements in the array.+getSizeofSmallMutableArray# :: SmallMutableArray# s a -> State# s -> (# State# s,Int# #)+getSizeofSmallMutableArray# = getSizeofSmallMutableArray#++-- |Read from specified index of immutable array. Result is packaged into+-- an unboxed singleton; the result itself is not yet evaluated.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexSmallArray# :: SmallArray# a -> Int# -> (# a #)+indexSmallArray# = indexSmallArray#++-- |Make a mutable array immutable, without copying.+unsafeFreezeSmallArray# :: SmallMutableArray# s a -> State# s -> (# State# s,SmallArray# a #)+unsafeFreezeSmallArray# = unsafeFreezeSmallArray#++-- |Make an immutable array mutable, without copying.+unsafeThawSmallArray# :: SmallArray# a -> State# s -> (# State# s,SmallMutableArray# s a #)+unsafeThawSmallArray# = unsafeThawSmallArray#++-- |Given a source array, an offset into the source array, a+-- destination array, an offset into the destination array, and a+-- number of elements to copy, copy the elements from the source array+-- to the destination array. Both arrays must fully contain the+-- specified ranges, but this is not checked. The two arrays must not+-- be the same array in different states, but this is not checked+-- either.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+copySmallArray# :: SmallArray# a -> Int# -> SmallMutableArray# s a -> Int# -> Int# -> State# s -> State# s+copySmallArray# = copySmallArray#++-- |Given a source array, an offset into the source array, a+-- destination array, an offset into the destination array, and a+-- number of elements to copy, copy the elements from the source array+-- to the destination array. The source and destination arrays can+-- refer to the same array. Both arrays must fully contain the+-- specified ranges, but this is not checked.+-- The regions are allowed to overlap, although this is only possible when the same+-- array is provided as both the source and the destination. +-- +-- __/Warning:/__ this can fail with an unchecked exception.+copySmallMutableArray# :: SmallMutableArray# s a -> Int# -> SmallMutableArray# s a -> Int# -> Int# -> State# s -> State# s+copySmallMutableArray# = copySmallMutableArray#++-- |Given a source array, an offset into the source array, and a number+-- of elements to copy, create a new array with the elements from the+-- source array. The provided array must fully contain the specified+-- range, but this is not checked.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+cloneSmallArray# :: SmallArray# a -> Int# -> Int# -> SmallArray# a+cloneSmallArray# = cloneSmallArray#++-- |Given a source array, an offset into the source array, and a number+-- of elements to copy, create a new array with the elements from the+-- source array. The provided array must fully contain the specified+-- range, but this is not checked.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+cloneSmallMutableArray# :: SmallMutableArray# s a -> Int# -> Int# -> State# s -> (# State# s,SmallMutableArray# s a #)+cloneSmallMutableArray# = cloneSmallMutableArray#++-- |Given a source array, an offset into the source array, and a number+-- of elements to copy, create a new array with the elements from the+-- source array. The provided array must fully contain the specified+-- range, but this is not checked.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+freezeSmallArray# :: SmallMutableArray# s a -> Int# -> Int# -> State# s -> (# State# s,SmallArray# a #)+freezeSmallArray# = freezeSmallArray#++-- |Given a source array, an offset into the source array, and a number+-- of elements to copy, create a new array with the elements from the+-- source array. The provided array must fully contain the specified+-- range, but this is not checked.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+thawSmallArray# :: SmallArray# a -> Int# -> Int# -> State# s -> (# State# s,SmallMutableArray# s a #)+thawSmallArray# = thawSmallArray#++-- |Unsafe, machine-level atomic compare and swap on an element within an array.+-- See the documentation of @casArray\#@.+casSmallArray# :: SmallMutableArray# s a -> Int# -> a -> a -> State# s -> (# State# s,Int#,a #)+casSmallArray# = casSmallArray#++data ByteArray#++data MutableByteArray# s++-- |Create a new mutable byte array of specified size (in bytes), in+-- the specified state thread.+newByteArray# :: Int# -> State# s -> (# State# s,MutableByteArray# s #)+newByteArray# = newByteArray#++-- |Create a mutable byte array that the GC guarantees not to move.+newPinnedByteArray# :: Int# -> State# s -> (# State# s,MutableByteArray# s #)+newPinnedByteArray# = newPinnedByteArray#++-- |Create a mutable byte array, aligned by the specified amount, that the GC guarantees not to move.+newAlignedPinnedByteArray# :: Int# -> Int# -> State# s -> (# State# s,MutableByteArray# s #)+newAlignedPinnedByteArray# = newAlignedPinnedByteArray#++-- |Determine whether a @MutableByteArray\#@ is guaranteed not to move+-- during GC.+isMutableByteArrayPinned# :: MutableByteArray# s -> Int#+isMutableByteArrayPinned# = isMutableByteArrayPinned#++-- |Determine whether a @ByteArray\#@ is guaranteed not to move during GC.+isByteArrayPinned# :: ByteArray# -> Int#+isByteArrayPinned# = isByteArrayPinned#++-- |Intended for use with pinned arrays; otherwise very unsafe!+byteArrayContents# :: ByteArray# -> Addr#+byteArrayContents# = byteArrayContents#++sameMutableByteArray# :: MutableByteArray# s -> MutableByteArray# s -> Int#+sameMutableByteArray# = sameMutableByteArray#++-- |Shrink mutable byte array to new specified size (in bytes), in+-- the specified state thread. The new size argument must be less than or+-- equal to the current size as reported by @sizeofMutableByteArray\#@.+shrinkMutableByteArray# :: MutableByteArray# s -> Int# -> State# s -> State# s+shrinkMutableByteArray# = shrinkMutableByteArray#++-- |Resize (unpinned) mutable byte array to new specified size (in bytes).+-- The returned @MutableByteArray\#@ is either the original+-- @MutableByteArray\#@ resized in-place or, if not possible, a newly+-- allocated (unpinned) @MutableByteArray\#@ (with the original content+-- copied over).+-- +-- To avoid undefined behaviour, the original @MutableByteArray\#@ shall+-- not be accessed anymore after a @resizeMutableByteArray\#@ has been+-- performed. Moreover, no reference to the old one should be kept in order+-- to allow garbage collection of the original @MutableByteArray\#@ in+-- case a new @MutableByteArray\#@ had to be allocated.+resizeMutableByteArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,MutableByteArray# s #)+resizeMutableByteArray# = resizeMutableByteArray#++-- |Make a mutable byte array immutable, without copying.+unsafeFreezeByteArray# :: MutableByteArray# s -> State# s -> (# State# s,ByteArray# #)+unsafeFreezeByteArray# = unsafeFreezeByteArray#++-- |Return the size of the array in bytes.+sizeofByteArray# :: ByteArray# -> Int#+sizeofByteArray# = sizeofByteArray#++-- |Return the size of the array in bytes. Note that this is deprecated as it is+-- unsafe in the presence of resize operations on the same byte+-- array.+{-# DEPRECATED sizeofMutableByteArray# " Use 'getSizeofMutableByteArray#' instead " #-}+sizeofMutableByteArray# :: MutableByteArray# s -> Int#+sizeofMutableByteArray# = sizeofMutableByteArray#++-- |Return the number of elements in the array.+getSizeofMutableByteArray# :: MutableByteArray# s -> State# s -> (# State# s,Int# #)+getSizeofMutableByteArray# = getSizeofMutableByteArray#++-- |Read 8-bit character; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexCharArray# :: ByteArray# -> Int# -> Char#+indexCharArray# = indexCharArray#++-- |Read 31-bit character; offset in 4-byte words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWideCharArray# :: ByteArray# -> Int# -> Char#+indexWideCharArray# = indexWideCharArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexIntArray# :: ByteArray# -> Int# -> Int#+indexIntArray# = indexIntArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWordArray# :: ByteArray# -> Int# -> Word#+indexWordArray# = indexWordArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexAddrArray# :: ByteArray# -> Int# -> Addr#+indexAddrArray# = indexAddrArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexFloatArray# :: ByteArray# -> Int# -> Float#+indexFloatArray# = indexFloatArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexDoubleArray# :: ByteArray# -> Int# -> Double#+indexDoubleArray# = indexDoubleArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexStablePtrArray# :: ByteArray# -> Int# -> StablePtr# a+indexStablePtrArray# = indexStablePtrArray#++-- |Read 8-bit integer; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexInt8Array# :: ByteArray# -> Int# -> Int#+indexInt8Array# = indexInt8Array#++-- |Read 16-bit integer; offset in 16-bit words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexInt16Array# :: ByteArray# -> Int# -> Int#+indexInt16Array# = indexInt16Array#++-- |Read 32-bit integer; offset in 32-bit words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexInt32Array# :: ByteArray# -> Int# -> Int#+indexInt32Array# = indexInt32Array#++-- |Read 64-bit integer; offset in 64-bit words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexInt64Array# :: ByteArray# -> Int# -> Int#+indexInt64Array# = indexInt64Array#++-- |Read 8-bit word; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8Array# :: ByteArray# -> Int# -> Word#+indexWord8Array# = indexWord8Array#++-- |Read 16-bit word; offset in 16-bit words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord16Array# :: ByteArray# -> Int# -> Word#+indexWord16Array# = indexWord16Array#++-- |Read 32-bit word; offset in 32-bit words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord32Array# :: ByteArray# -> Int# -> Word#+indexWord32Array# = indexWord32Array#++-- |Read 64-bit word; offset in 64-bit words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord64Array# :: ByteArray# -> Int# -> Word#+indexWord64Array# = indexWord64Array#++-- |Read 8-bit character; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsChar# :: ByteArray# -> Int# -> Char#+indexWord8ArrayAsChar# = indexWord8ArrayAsChar#++-- |Read 31-bit character; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsWideChar# :: ByteArray# -> Int# -> Char#+indexWord8ArrayAsWideChar# = indexWord8ArrayAsWideChar#++-- |Read address; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsAddr# :: ByteArray# -> Int# -> Addr#+indexWord8ArrayAsAddr# = indexWord8ArrayAsAddr#++-- |Read float; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsFloat# :: ByteArray# -> Int# -> Float#+indexWord8ArrayAsFloat# = indexWord8ArrayAsFloat#++-- |Read double; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsDouble# :: ByteArray# -> Int# -> Double#+indexWord8ArrayAsDouble# = indexWord8ArrayAsDouble#++-- |Read stable pointer; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsStablePtr# :: ByteArray# -> Int# -> StablePtr# a+indexWord8ArrayAsStablePtr# = indexWord8ArrayAsStablePtr#++-- |Read 16-bit int; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsInt16# :: ByteArray# -> Int# -> Int#+indexWord8ArrayAsInt16# = indexWord8ArrayAsInt16#++-- |Read 32-bit int; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsInt32# :: ByteArray# -> Int# -> Int#+indexWord8ArrayAsInt32# = indexWord8ArrayAsInt32#++-- |Read 64-bit int; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsInt64# :: ByteArray# -> Int# -> Int#+indexWord8ArrayAsInt64# = indexWord8ArrayAsInt64#++-- |Read int; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsInt# :: ByteArray# -> Int# -> Int#+indexWord8ArrayAsInt# = indexWord8ArrayAsInt#++-- |Read 16-bit word; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsWord16# :: ByteArray# -> Int# -> Word#+indexWord8ArrayAsWord16# = indexWord8ArrayAsWord16#++-- |Read 32-bit word; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsWord32# :: ByteArray# -> Int# -> Word#+indexWord8ArrayAsWord32# = indexWord8ArrayAsWord32#++-- |Read 64-bit word; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsWord64# :: ByteArray# -> Int# -> Word#+indexWord8ArrayAsWord64# = indexWord8ArrayAsWord64#++-- |Read word; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8ArrayAsWord# :: ByteArray# -> Int# -> Word#+indexWord8ArrayAsWord# = indexWord8ArrayAsWord#++-- |Read 8-bit character; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readCharArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Char# #)+readCharArray# = readCharArray#++-- |Read 31-bit character; offset in 4-byte words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWideCharArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Char# #)+readWideCharArray# = readWideCharArray#++-- |Read integer; offset in machine words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readIntArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+readIntArray# = readIntArray#++-- |Read word; offset in machine words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWordArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)+readWordArray# = readWordArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readAddrArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Addr# #)+readAddrArray# = readAddrArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readFloatArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Float# #)+readFloatArray# = readFloatArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readDoubleArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Double# #)+readDoubleArray# = readDoubleArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readStablePtrArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,StablePtr# a #)+readStablePtrArray# = readStablePtrArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readInt8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+readInt8Array# = readInt8Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readInt16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+readInt16Array# = readInt16Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readInt32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+readInt32Array# = readInt32Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readInt64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+readInt64Array# = readInt64Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)+readWord8Array# = readWord8Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)+readWord16Array# = readWord16Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)+readWord32Array# = readWord32Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)+readWord64Array# = readWord64Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsChar# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Char# #)+readWord8ArrayAsChar# = readWord8ArrayAsChar#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsWideChar# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Char# #)+readWord8ArrayAsWideChar# = readWord8ArrayAsWideChar#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsAddr# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Addr# #)+readWord8ArrayAsAddr# = readWord8ArrayAsAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsFloat# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Float# #)+readWord8ArrayAsFloat# = readWord8ArrayAsFloat#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsDouble# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Double# #)+readWord8ArrayAsDouble# = readWord8ArrayAsDouble#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsStablePtr# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,StablePtr# a #)+readWord8ArrayAsStablePtr# = readWord8ArrayAsStablePtr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsInt16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+readWord8ArrayAsInt16# = readWord8ArrayAsInt16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsInt32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+readWord8ArrayAsInt32# = readWord8ArrayAsInt32#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsInt64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+readWord8ArrayAsInt64# = readWord8ArrayAsInt64#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsInt# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+readWord8ArrayAsInt# = readWord8ArrayAsInt#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsWord16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)+readWord8ArrayAsWord16# = readWord8ArrayAsWord16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsWord32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)+readWord8ArrayAsWord32# = readWord8ArrayAsWord32#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsWord64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)+readWord8ArrayAsWord64# = readWord8ArrayAsWord64#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8ArrayAsWord# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word# #)+readWord8ArrayAsWord# = readWord8ArrayAsWord#++-- |Write 8-bit character; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeCharArray# :: MutableByteArray# s -> Int# -> Char# -> State# s -> State# s+writeCharArray# = writeCharArray#++-- |Write 31-bit character; offset in 4-byte words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWideCharArray# :: MutableByteArray# s -> Int# -> Char# -> State# s -> State# s+writeWideCharArray# = writeWideCharArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+writeIntArray# = writeIntArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWordArray# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s+writeWordArray# = writeWordArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeAddrArray# :: MutableByteArray# s -> Int# -> Addr# -> State# s -> State# s+writeAddrArray# = writeAddrArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeFloatArray# :: MutableByteArray# s -> Int# -> Float# -> State# s -> State# s+writeFloatArray# = writeFloatArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeDoubleArray# :: MutableByteArray# s -> Int# -> Double# -> State# s -> State# s+writeDoubleArray# = writeDoubleArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeStablePtrArray# :: MutableByteArray# s -> Int# -> StablePtr# a -> State# s -> State# s+writeStablePtrArray# = writeStablePtrArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeInt8Array# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+writeInt8Array# = writeInt8Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeInt16Array# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+writeInt16Array# = writeInt16Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeInt32Array# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+writeInt32Array# = writeInt32Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeInt64Array# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+writeInt64Array# = writeInt64Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8Array# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s+writeWord8Array# = writeWord8Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord16Array# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s+writeWord16Array# = writeWord16Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord32Array# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s+writeWord32Array# = writeWord32Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord64Array# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s+writeWord64Array# = writeWord64Array#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsChar# :: MutableByteArray# s -> Int# -> Char# -> State# s -> State# s+writeWord8ArrayAsChar# = writeWord8ArrayAsChar#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsWideChar# :: MutableByteArray# s -> Int# -> Char# -> State# s -> State# s+writeWord8ArrayAsWideChar# = writeWord8ArrayAsWideChar#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsAddr# :: MutableByteArray# s -> Int# -> Addr# -> State# s -> State# s+writeWord8ArrayAsAddr# = writeWord8ArrayAsAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsFloat# :: MutableByteArray# s -> Int# -> Float# -> State# s -> State# s+writeWord8ArrayAsFloat# = writeWord8ArrayAsFloat#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsDouble# :: MutableByteArray# s -> Int# -> Double# -> State# s -> State# s+writeWord8ArrayAsDouble# = writeWord8ArrayAsDouble#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsStablePtr# :: MutableByteArray# s -> Int# -> StablePtr# a -> State# s -> State# s+writeWord8ArrayAsStablePtr# = writeWord8ArrayAsStablePtr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsInt16# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+writeWord8ArrayAsInt16# = writeWord8ArrayAsInt16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsInt32# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+writeWord8ArrayAsInt32# = writeWord8ArrayAsInt32#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsInt64# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+writeWord8ArrayAsInt64# = writeWord8ArrayAsInt64#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsInt# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+writeWord8ArrayAsInt# = writeWord8ArrayAsInt#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsWord16# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s+writeWord8ArrayAsWord16# = writeWord8ArrayAsWord16#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsWord32# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s+writeWord8ArrayAsWord32# = writeWord8ArrayAsWord32#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsWord64# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s+writeWord8ArrayAsWord64# = writeWord8ArrayAsWord64#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8ArrayAsWord# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s+writeWord8ArrayAsWord# = writeWord8ArrayAsWord#++-- |@compareByteArrays# src1 src1_ofs src2 src2_ofs n@ compares+-- @n@ bytes starting at offset @src1_ofs@ in the first+-- @ByteArray#@ @src1@ to the range of @n@ bytes+-- (i.e. same length) starting at offset @src2_ofs@ of the second+-- @ByteArray#@ @src2@. Both arrays must fully contain the+-- specified ranges, but this is not checked. Returns an @Int#@+-- less than, equal to, or greater than zero if the range is found,+-- respectively, to be byte-wise lexicographically less than, to+-- match, or be greater than the second range.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+compareByteArrays# :: ByteArray# -> Int# -> ByteArray# -> Int# -> Int# -> Int#+compareByteArrays# = compareByteArrays#++-- |@copyByteArray# src src_ofs dst dst_ofs n@ copies the range+-- starting at offset @src_ofs@ of length @n@ from the+-- @ByteArray#@ @src@ to the @MutableByteArray#@ @dst@+-- starting at offset @dst_ofs@. Both arrays must fully contain+-- the specified ranges, but this is not checked. The two arrays must+-- not be the same array in different states, but this is not checked+-- either.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+copyByteArray# :: ByteArray# -> Int# -> MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+copyByteArray# = copyByteArray#++-- |Copy a range of the first MutableByteArray\# to the specified region in the second MutableByteArray\#.+-- Both arrays must fully contain the specified ranges, but this is not checked. The regions are+-- allowed to overlap, although this is only possible when the same array is provided+-- as both the source and the destination.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+copyMutableByteArray# :: MutableByteArray# s -> Int# -> MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+copyMutableByteArray# = copyMutableByteArray#++-- |Copy a range of the ByteArray\# to the memory range starting at the Addr\#.+-- The ByteArray\# and the memory region at Addr\# must fully contain the+-- specified ranges, but this is not checked. The Addr\# must not point into the+-- ByteArray\# (e.g. if the ByteArray\# were pinned), but this is not checked+-- either.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+copyByteArrayToAddr# :: ByteArray# -> Int# -> Addr# -> Int# -> State# s -> State# s+copyByteArrayToAddr# = copyByteArrayToAddr#++-- |Copy a range of the MutableByteArray\# to the memory range starting at the+-- Addr\#. The MutableByteArray\# and the memory region at Addr\# must fully+-- contain the specified ranges, but this is not checked. The Addr\# must not+-- point into the MutableByteArray\# (e.g. if the MutableByteArray\# were+-- pinned), but this is not checked either.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+copyMutableByteArrayToAddr# :: MutableByteArray# s -> Int# -> Addr# -> Int# -> State# s -> State# s+copyMutableByteArrayToAddr# = copyMutableByteArrayToAddr#++-- |Copy a memory range starting at the Addr\# to the specified range in the+-- MutableByteArray\#. The memory region at Addr\# and the ByteArray\# must fully+-- contain the specified ranges, but this is not checked. The Addr\# must not+-- point into the MutableByteArray\# (e.g. if the MutableByteArray\# were pinned),+-- but this is not checked either.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+copyAddrToByteArray# :: Addr# -> MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+copyAddrToByteArray# = copyAddrToByteArray#++-- |@setByteArray# ba off len c@ sets the byte range @[off, off+len]@ of+-- the @MutableByteArray#@ to the byte @c@.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+setByteArray# :: MutableByteArray# s -> Int# -> Int# -> Int# -> State# s -> State# s+setByteArray# = setByteArray#++-- |Given an array and an offset in machine words, read an element. The+-- index is assumed to be in bounds. Implies a full memory barrier.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+atomicReadIntArray# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int# #)+atomicReadIntArray# = atomicReadIntArray#++-- |Given an array and an offset in machine words, write an element. The+-- index is assumed to be in bounds. Implies a full memory barrier.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+atomicWriteIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s+atomicWriteIntArray# = atomicWriteIntArray#++-- |Given an array, an offset in machine words, the expected old value, and+-- the new value, perform an atomic compare and swap i.e. write the new+-- value if the current value matches the provided old value. Returns+-- the value of the element before the operation. Implies a full memory+-- barrier.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+casIntArray# :: MutableByteArray# s -> Int# -> Int# -> Int# -> State# s -> (# State# s,Int# #)+casIntArray# = casIntArray#++-- |Given an array, and offset in machine words, and a value to add,+-- atomically add the value to the element. Returns the value of the+-- element before the operation. Implies a full memory barrier.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+fetchAddIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)+fetchAddIntArray# = fetchAddIntArray#++-- |Given an array, and offset in machine words, and a value to subtract,+-- atomically substract the value to the element. Returns the value of+-- the element before the operation. Implies a full memory barrier.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+fetchSubIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)+fetchSubIntArray# = fetchSubIntArray#++-- |Given an array, and offset in machine words, and a value to AND,+-- atomically AND the value to the element. Returns the value of the+-- element before the operation. Implies a full memory barrier.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+fetchAndIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)+fetchAndIntArray# = fetchAndIntArray#++-- |Given an array, and offset in machine words, and a value to NAND,+-- atomically NAND the value to the element. Returns the value of the+-- element before the operation. Implies a full memory barrier.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+fetchNandIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)+fetchNandIntArray# = fetchNandIntArray#++-- |Given an array, and offset in machine words, and a value to OR,+-- atomically OR the value to the element. Returns the value of the+-- element before the operation. Implies a full memory barrier.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+fetchOrIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)+fetchOrIntArray# = fetchOrIntArray#++-- |Given an array, and offset in machine words, and a value to XOR,+-- atomically XOR the value to the element. Returns the value of the+-- element before the operation. Implies a full memory barrier.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+fetchXorIntArray# :: MutableByteArray# s -> Int# -> Int# -> State# s -> (# State# s,Int# #)+fetchXorIntArray# = fetchXorIntArray#++data ArrayArray#++data MutableArrayArray# s++-- |Create a new mutable array of arrays with the specified number of elements,+-- in the specified state thread, with each element recursively referring to the+-- newly created array.+newArrayArray# :: Int# -> State# s -> (# State# s,MutableArrayArray# s #)+newArrayArray# = newArrayArray#++sameMutableArrayArray# :: MutableArrayArray# s -> MutableArrayArray# s -> Int#+sameMutableArrayArray# = sameMutableArrayArray#++-- |Make a mutable array of arrays immutable, without copying.+unsafeFreezeArrayArray# :: MutableArrayArray# s -> State# s -> (# State# s,ArrayArray# #)+unsafeFreezeArrayArray# = unsafeFreezeArrayArray#++-- |Return the number of elements in the array.+sizeofArrayArray# :: ArrayArray# -> Int#+sizeofArrayArray# = sizeofArrayArray#++-- |Return the number of elements in the array.+sizeofMutableArrayArray# :: MutableArrayArray# s -> Int#+sizeofMutableArrayArray# = sizeofMutableArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexByteArrayArray# :: ArrayArray# -> Int# -> ByteArray#+indexByteArrayArray# = indexByteArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexArrayArrayArray# :: ArrayArray# -> Int# -> ArrayArray#+indexArrayArrayArray# = indexArrayArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readByteArrayArray# :: MutableArrayArray# s -> Int# -> State# s -> (# State# s,ByteArray# #)+readByteArrayArray# = readByteArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readMutableByteArrayArray# :: MutableArrayArray# s -> Int# -> State# s -> (# State# s,MutableByteArray# s #)+readMutableByteArrayArray# = readMutableByteArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readArrayArrayArray# :: MutableArrayArray# s -> Int# -> State# s -> (# State# s,ArrayArray# #)+readArrayArrayArray# = readArrayArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readMutableArrayArrayArray# :: MutableArrayArray# s -> Int# -> State# s -> (# State# s,MutableArrayArray# s #)+readMutableArrayArrayArray# = readMutableArrayArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeByteArrayArray# :: MutableArrayArray# s -> Int# -> ByteArray# -> State# s -> State# s+writeByteArrayArray# = writeByteArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeMutableByteArrayArray# :: MutableArrayArray# s -> Int# -> MutableByteArray# s -> State# s -> State# s+writeMutableByteArrayArray# = writeMutableByteArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeArrayArrayArray# :: MutableArrayArray# s -> Int# -> ArrayArray# -> State# s -> State# s+writeArrayArrayArray# = writeArrayArrayArray#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeMutableArrayArrayArray# :: MutableArrayArray# s -> Int# -> MutableArrayArray# s -> State# s -> State# s+writeMutableArrayArrayArray# = writeMutableArrayArrayArray#++-- |Copy a range of the ArrayArray\# to the specified region in the MutableArrayArray\#.+-- Both arrays must fully contain the specified ranges, but this is not checked.+-- The two arrays must not be the same array in different states, but this is not checked either.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+copyArrayArray# :: ArrayArray# -> Int# -> MutableArrayArray# s -> Int# -> Int# -> State# s -> State# s+copyArrayArray# = copyArrayArray#++-- |Copy a range of the first MutableArrayArray# to the specified region in the second+-- MutableArrayArray#.+-- Both arrays must fully contain the specified ranges, but this is not checked.+-- The regions are allowed to overlap, although this is only possible when the same+-- array is provided as both the source and the destination.+-- +-- +-- __/Warning:/__ this can fail with an unchecked exception.+copyMutableArrayArray# :: MutableArrayArray# s -> Int# -> MutableArrayArray# s -> Int# -> Int# -> State# s -> State# s+copyMutableArrayArray# = copyMutableArrayArray#++-- | An arbitrary machine address assumed to point outside+-- the garbage-collected heap. +data Addr#++-- | The null address. +nullAddr# :: Addr#+nullAddr# = nullAddr#++plusAddr# :: Addr# -> Int# -> Addr#+plusAddr# = plusAddr#++-- |Result is meaningless if two @Addr\#@s are so far apart that their+-- difference doesn\'t fit in an @Int\#@.+minusAddr# :: Addr# -> Addr# -> Int#+minusAddr# = minusAddr#++-- |Return the remainder when the @Addr\#@ arg, treated like an @Int\#@,+-- is divided by the @Int\#@ arg.+remAddr# :: Addr# -> Int# -> Int#+remAddr# = remAddr#++-- |Coerce directly from address to int.+{-# DEPRECATED addr2Int# " This operation is strongly deprecated. " #-}+addr2Int# :: Addr# -> Int#+addr2Int# = addr2Int#++-- |Coerce directly from int to address.+{-# DEPRECATED int2Addr# " This operation is strongly deprecated. " #-}+int2Addr# :: Int# -> Addr#+int2Addr# = int2Addr#++gtAddr# :: Addr# -> Addr# -> Int#+gtAddr# = gtAddr#++geAddr# :: Addr# -> Addr# -> Int#+geAddr# = geAddr#++eqAddr# :: Addr# -> Addr# -> Int#+eqAddr# = eqAddr#++neAddr# :: Addr# -> Addr# -> Int#+neAddr# = neAddr#++ltAddr# :: Addr# -> Addr# -> Int#+ltAddr# = ltAddr#++leAddr# :: Addr# -> Addr# -> Int#+leAddr# = leAddr#++-- |Reads 8-bit character; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexCharOffAddr# :: Addr# -> Int# -> Char#+indexCharOffAddr# = indexCharOffAddr#++-- |Reads 31-bit character; offset in 4-byte words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWideCharOffAddr# :: Addr# -> Int# -> Char#+indexWideCharOffAddr# = indexWideCharOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexIntOffAddr# :: Addr# -> Int# -> Int#+indexIntOffAddr# = indexIntOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWordOffAddr# :: Addr# -> Int# -> Word#+indexWordOffAddr# = indexWordOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexAddrOffAddr# :: Addr# -> Int# -> Addr#+indexAddrOffAddr# = indexAddrOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexFloatOffAddr# :: Addr# -> Int# -> Float#+indexFloatOffAddr# = indexFloatOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexDoubleOffAddr# :: Addr# -> Int# -> Double#+indexDoubleOffAddr# = indexDoubleOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a+indexStablePtrOffAddr# = indexStablePtrOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexInt8OffAddr# :: Addr# -> Int# -> Int#+indexInt8OffAddr# = indexInt8OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexInt16OffAddr# :: Addr# -> Int# -> Int#+indexInt16OffAddr# = indexInt16OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexInt32OffAddr# :: Addr# -> Int# -> Int#+indexInt32OffAddr# = indexInt32OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexInt64OffAddr# :: Addr# -> Int# -> Int#+indexInt64OffAddr# = indexInt64OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord8OffAddr# :: Addr# -> Int# -> Word#+indexWord8OffAddr# = indexWord8OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord16OffAddr# :: Addr# -> Int# -> Word#+indexWord16OffAddr# = indexWord16OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord32OffAddr# :: Addr# -> Int# -> Word#+indexWord32OffAddr# = indexWord32OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+indexWord64OffAddr# :: Addr# -> Int# -> Word#+indexWord64OffAddr# = indexWord64OffAddr#++-- |Reads 8-bit character; offset in bytes.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readCharOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Char# #)+readCharOffAddr# = readCharOffAddr#++-- |Reads 31-bit character; offset in 4-byte words.+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWideCharOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Char# #)+readWideCharOffAddr# = readWideCharOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readIntOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)+readIntOffAddr# = readIntOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWordOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)+readWordOffAddr# = readWordOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readAddrOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Addr# #)+readAddrOffAddr# = readAddrOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readFloatOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Float# #)+readFloatOffAddr# = readFloatOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readDoubleOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Double# #)+readDoubleOffAddr# = readDoubleOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readStablePtrOffAddr# :: Addr# -> Int# -> State# s -> (# State# s,StablePtr# a #)+readStablePtrOffAddr# = readStablePtrOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readInt8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)+readInt8OffAddr# = readInt8OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readInt16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)+readInt16OffAddr# = readInt16OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readInt32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)+readInt32OffAddr# = readInt32OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readInt64OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int# #)+readInt64OffAddr# = readInt64OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)+readWord8OffAddr# = readWord8OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)+readWord16OffAddr# = readWord16OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)+readWord32OffAddr# = readWord32OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+readWord64OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word# #)+readWord64OffAddr# = readWord64OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeCharOffAddr# :: Addr# -> Int# -> Char# -> State# s -> State# s+writeCharOffAddr# = writeCharOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWideCharOffAddr# :: Addr# -> Int# -> Char# -> State# s -> State# s+writeWideCharOffAddr# = writeWideCharOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeIntOffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s+writeIntOffAddr# = writeIntOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWordOffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s+writeWordOffAddr# = writeWordOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeAddrOffAddr# :: Addr# -> Int# -> Addr# -> State# s -> State# s+writeAddrOffAddr# = writeAddrOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeFloatOffAddr# :: Addr# -> Int# -> Float# -> State# s -> State# s+writeFloatOffAddr# = writeFloatOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeDoubleOffAddr# :: Addr# -> Int# -> Double# -> State# s -> State# s+writeDoubleOffAddr# = writeDoubleOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a -> State# s -> State# s+writeStablePtrOffAddr# = writeStablePtrOffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeInt8OffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s+writeInt8OffAddr# = writeInt8OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeInt16OffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s+writeInt16OffAddr# = writeInt16OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeInt32OffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s+writeInt32OffAddr# = writeInt32OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeInt64OffAddr# :: Addr# -> Int# -> Int# -> State# s -> State# s+writeInt64OffAddr# = writeInt64OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord8OffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s+writeWord8OffAddr# = writeWord8OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord16OffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s+writeWord16OffAddr# = writeWord16OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord32OffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s+writeWord32OffAddr# = writeWord32OffAddr#++-- |+-- +-- __/Warning:/__ this can fail with an unchecked exception.+writeWord64OffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s+writeWord64OffAddr# = writeWord64OffAddr#++-- |A @MutVar\#@ behaves like a single-element mutable array.+data MutVar# s a++-- |Create @MutVar\#@ with specified initial value in specified state thread.+newMutVar# :: a -> State# s -> (# State# s,MutVar# s a #)+newMutVar# = newMutVar#++-- |Read contents of @MutVar\#@. Result is not yet evaluated.+readMutVar# :: MutVar# s a -> State# s -> (# State# s,a #)+readMutVar# = readMutVar#++-- |Write contents of @MutVar\#@.+writeMutVar# :: MutVar# s a -> a -> State# s -> State# s+writeMutVar# = writeMutVar#++sameMutVar# :: MutVar# s a -> MutVar# s a -> Int#+sameMutVar# = sameMutVar#++-- | Modify the contents of a @MutVar\#@, returning the previous+-- contents and the result of applying the given function to the+-- previous contents. Note that this isn\'t strictly+-- speaking the correct type for this function; it should really be+-- @MutVar\# s a -> (a -> (a,b)) -> State\# s -> (\# State\# s, a, (a, b) \#)@,+-- but we don\'t know about pairs here. +-- +-- __/Warning:/__ this can fail with an unchecked exception.+atomicModifyMutVar2# :: MutVar# s a -> (a -> c) -> State# s -> (# State# s,a,c #)+atomicModifyMutVar2# = atomicModifyMutVar2#++-- | Modify the contents of a @MutVar\#@, returning the previous+-- contents and the result of applying the given function to the+-- previous contents. +-- +-- __/Warning:/__ this can fail with an unchecked exception.+atomicModifyMutVar_# :: MutVar# s a -> (a -> a) -> State# s -> (# State# s,a,a #)+atomicModifyMutVar_# = atomicModifyMutVar_#++casMutVar# :: MutVar# s a -> a -> a -> State# s -> (# State# s,Int#,a #)+casMutVar# = casMutVar#++catch# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> (b -> State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)+catch# = catch#++raise# :: b -> o+raise# = raise#++raiseIO# :: a -> State# (RealWorld) -> (# State# (RealWorld),b #)+raiseIO# = raiseIO#++maskAsyncExceptions# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)+maskAsyncExceptions# = maskAsyncExceptions#++maskUninterruptible# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)+maskUninterruptible# = maskUninterruptible#++unmaskAsyncExceptions# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)+unmaskAsyncExceptions# = unmaskAsyncExceptions#++getMaskingState# :: State# (RealWorld) -> (# State# (RealWorld),Int# #)+getMaskingState# = getMaskingState#++data TVar# s a++atomically# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)+atomically# = atomically#++retry# :: State# (RealWorld) -> (# State# (RealWorld),a #)+retry# = retry#++catchRetry# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> (State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)+catchRetry# = catchRetry#++catchSTM# :: (State# (RealWorld) -> (# State# (RealWorld),a #)) -> (b -> State# (RealWorld) -> (# State# (RealWorld),a #)) -> State# (RealWorld) -> (# State# (RealWorld),a #)+catchSTM# = catchSTM#++-- |Create a new @TVar\#@ holding a specified initial value.+newTVar# :: a -> State# s -> (# State# s,TVar# s a #)+newTVar# = newTVar#++-- |Read contents of @TVar\#@. Result is not yet evaluated.+readTVar# :: TVar# s a -> State# s -> (# State# s,a #)+readTVar# = readTVar#++-- |Read contents of @TVar\#@ outside an STM transaction+readTVarIO# :: TVar# s a -> State# s -> (# State# s,a #)+readTVarIO# = readTVarIO#++-- |Write contents of @TVar\#@.+writeTVar# :: TVar# s a -> a -> State# s -> State# s+writeTVar# = writeTVar#++sameTVar# :: TVar# s a -> TVar# s a -> Int#+sameTVar# = sameTVar#++-- | A shared mutable variable (/not/ the same as a @MutVar\#@!).+-- (Note: in a non-concurrent implementation, @(MVar\# a)@ can be+-- represented by @(MutVar\# (Maybe a))@.) +data MVar# s a++-- |Create new @MVar\#@; initially empty.+newMVar# :: State# s -> (# State# s,MVar# s a #)+newMVar# = newMVar#++-- |If @MVar\#@ is empty, block until it becomes full.+-- Then remove and return its contents, and set it empty.+takeMVar# :: MVar# s a -> State# s -> (# State# s,a #)+takeMVar# = takeMVar#++-- |If @MVar\#@ is empty, immediately return with integer 0 and value undefined.+-- Otherwise, return with integer 1 and contents of @MVar\#@, and set @MVar\#@ empty.+tryTakeMVar# :: MVar# s a -> State# s -> (# State# s,Int#,a #)+tryTakeMVar# = tryTakeMVar#++-- |If @MVar\#@ is full, block until it becomes empty.+-- Then store value arg as its new contents.+putMVar# :: MVar# s a -> a -> State# s -> State# s+putMVar# = putMVar#++-- |If @MVar\#@ is full, immediately return with integer 0.+-- Otherwise, store value arg as @MVar\#@\'s new contents, and return with integer 1.+tryPutMVar# :: MVar# s a -> a -> State# s -> (# State# s,Int# #)+tryPutMVar# = tryPutMVar#++-- |If @MVar\#@ is empty, block until it becomes full.+-- Then read its contents without modifying the MVar, without possibility+-- of intervention from other threads.+readMVar# :: MVar# s a -> State# s -> (# State# s,a #)+readMVar# = readMVar#++-- |If @MVar\#@ is empty, immediately return with integer 0 and value undefined.+-- Otherwise, return with integer 1 and contents of @MVar\#@.+tryReadMVar# :: MVar# s a -> State# s -> (# State# s,Int#,a #)+tryReadMVar# = tryReadMVar#++sameMVar# :: MVar# s a -> MVar# s a -> Int#+sameMVar# = sameMVar#++-- |Return 1 if @MVar\#@ is empty; 0 otherwise.+isEmptyMVar# :: MVar# s a -> State# s -> (# State# s,Int# #)+isEmptyMVar# = isEmptyMVar#++-- |Sleep specified number of microseconds.+delay# :: Int# -> State# s -> State# s+delay# = delay#++-- |Block until input is available on specified file descriptor.+waitRead# :: Int# -> State# s -> State# s+waitRead# = waitRead#++-- |Block until output is possible on specified file descriptor.+waitWrite# :: Int# -> State# s -> State# s+waitWrite# = waitWrite#++-- | @State\#@ is the primitive, unlifted type of states. It has+-- one type parameter, thus @State\# RealWorld@, or @State\# s@,+-- where s is a type variable. The only purpose of the type parameter+-- is to keep different state threads separate. It is represented by+-- nothing at all. +data State# s++-- | @RealWorld@ is deeply magical. It is /primitive/, but it is not+-- /unlifted/ (hence @ptrArg@). We never manipulate values of type+-- @RealWorld@; it\'s only used in the type system, to parameterise @State\#@. +data RealWorld++-- |(In a non-concurrent implementation, this can be a singleton+-- type, whose (unique) value is returned by @myThreadId\#@. The+-- other operations can be omitted.)+data ThreadId#++fork# :: a -> State# (RealWorld) -> (# State# (RealWorld),ThreadId# #)+fork# = fork#++forkOn# :: Int# -> a -> State# (RealWorld) -> (# State# (RealWorld),ThreadId# #)+forkOn# = forkOn#++killThread# :: ThreadId# -> a -> State# (RealWorld) -> State# (RealWorld)+killThread# = killThread#++yield# :: State# (RealWorld) -> State# (RealWorld)+yield# = yield#++myThreadId# :: State# (RealWorld) -> (# State# (RealWorld),ThreadId# #)+myThreadId# = myThreadId#++labelThread# :: ThreadId# -> Addr# -> State# (RealWorld) -> State# (RealWorld)+labelThread# = labelThread#++isCurrentThreadBound# :: State# (RealWorld) -> (# State# (RealWorld),Int# #)+isCurrentThreadBound# = isCurrentThreadBound#++noDuplicate# :: State# s -> State# s+noDuplicate# = noDuplicate#++threadStatus# :: ThreadId# -> State# (RealWorld) -> (# State# (RealWorld),Int#,Int#,Int# #)+threadStatus# = threadStatus#++data Weak# b++-- | @mkWeak# k v finalizer s@ creates a weak reference to value @k@,+-- with an associated reference to some value @v@. If @k@ is still+-- alive then @v@ can be retrieved using @deRefWeak#@. Note that+-- the type of @k@ must be represented by a pointer (i.e. of kind @TYPE \'LiftedRep@ or @TYPE \'UnliftedRep@). +mkWeak# :: o -> b -> (State# (RealWorld) -> (# State# (RealWorld),c #)) -> State# (RealWorld) -> (# State# (RealWorld),Weak# b #)+mkWeak# = mkWeak#++mkWeakNoFinalizer# :: o -> b -> State# (RealWorld) -> (# State# (RealWorld),Weak# b #)+mkWeakNoFinalizer# = mkWeakNoFinalizer#++-- | @addCFinalizerToWeak# fptr ptr flag eptr w@ attaches a C+-- function pointer @fptr@ to a weak pointer @w@ as a finalizer. If+-- @flag@ is zero, @fptr@ will be called with one argument,+-- @ptr@. Otherwise, it will be called with two arguments,+-- @eptr@ and @ptr@. @addCFinalizerToWeak#@ returns+-- 1 on success, or 0 if @w@ is already dead. +addCFinalizerToWeak# :: Addr# -> Addr# -> Int# -> Addr# -> Weak# b -> State# (RealWorld) -> (# State# (RealWorld),Int# #)+addCFinalizerToWeak# = addCFinalizerToWeak#++deRefWeak# :: Weak# a -> State# (RealWorld) -> (# State# (RealWorld),Int#,a #)+deRefWeak# = deRefWeak#++-- | Finalize a weak pointer. The return value is an unboxed tuple+-- containing the new state of the world and an \"unboxed Maybe\",+-- represented by an @Int#@ and a (possibly invalid) finalization+-- action. An @Int#@ of @1@ indicates that the finalizer is valid. The+-- return value @b@ from the finalizer should be ignored. +finalizeWeak# :: Weak# a -> State# (RealWorld) -> (# State# (RealWorld),Int#,State# (RealWorld) -> (# State# (RealWorld),b #) #)+finalizeWeak# = finalizeWeak#++touch# :: o -> State# (RealWorld) -> State# (RealWorld)+touch# = touch#++data StablePtr# a++data StableName# a++makeStablePtr# :: a -> State# (RealWorld) -> (# State# (RealWorld),StablePtr# a #)+makeStablePtr# = makeStablePtr#++deRefStablePtr# :: StablePtr# a -> State# (RealWorld) -> (# State# (RealWorld),a #)+deRefStablePtr# = deRefStablePtr#++eqStablePtr# :: StablePtr# a -> StablePtr# a -> Int#+eqStablePtr# = eqStablePtr#++makeStableName# :: a -> State# (RealWorld) -> (# State# (RealWorld),StableName# a #)+makeStableName# = makeStableName#++eqStableName# :: StableName# a -> StableName# b -> Int#+eqStableName# = eqStableName#++stableNameToInt# :: StableName# a -> Int#+stableNameToInt# = stableNameToInt#++data Compact#++-- | Create a new CNF with a single compact block. The argument is+-- the capacity of the compact block (in bytes, not words).+-- The capacity is rounded up to a multiple of the allocator block size+-- and is capped to one mega block. +compactNew# :: Word# -> State# (RealWorld) -> (# State# (RealWorld),Compact# #)+compactNew# = compactNew#++-- | Set the new allocation size of the CNF. This value (in bytes)+-- determines the capacity of each compact block in the CNF. It+-- does not retroactively affect existing compact blocks in the CNF. +compactResize# :: Compact# -> Word# -> State# (RealWorld) -> State# (RealWorld)+compactResize# = compactResize#++-- | Returns 1\# if the object is contained in the CNF, 0\# otherwise. +compactContains# :: Compact# -> a -> State# (RealWorld) -> (# State# (RealWorld),Int# #)+compactContains# = compactContains#++-- | Returns 1\# if the object is in any CNF at all, 0\# otherwise. +compactContainsAny# :: a -> State# (RealWorld) -> (# State# (RealWorld),Int# #)+compactContainsAny# = compactContainsAny#++-- | Returns the address and the utilized size (in bytes) of the+-- first compact block of a CNF.+compactGetFirstBlock# :: Compact# -> State# (RealWorld) -> (# State# (RealWorld),Addr#,Word# #)+compactGetFirstBlock# = compactGetFirstBlock#++-- | Given a CNF and the address of one its compact blocks, returns the+-- next compact block and its utilized size, or @nullAddr\#@ if the+-- argument was the last compact block in the CNF. +compactGetNextBlock# :: Compact# -> Addr# -> State# (RealWorld) -> (# State# (RealWorld),Addr#,Word# #)+compactGetNextBlock# = compactGetNextBlock#++-- | Attempt to allocate a compact block with the capacity (in+-- bytes) given by the first argument. The @Addr\#@ is a pointer+-- to previous compact block of the CNF or @nullAddr\#@ to create a+-- new CNF with a single compact block.+-- +-- The resulting block is not known to the GC until+-- @compactFixupPointers\#@ is called on it, and care must be taken+-- so that the address does not escape or memory will be leaked.+-- +compactAllocateBlock# :: Word# -> Addr# -> State# (RealWorld) -> (# State# (RealWorld),Addr# #)+compactAllocateBlock# = compactAllocateBlock#++-- | Given the pointer to the first block of a CNF and the+-- address of the root object in the old address space, fix up+-- the internal pointers inside the CNF to account for+-- a different position in memory than when it was serialized.+-- This method must be called exactly once after importing+-- a serialized CNF. It returns the new CNF and the new adjusted+-- root address. +compactFixupPointers# :: Addr# -> Addr# -> State# (RealWorld) -> (# State# (RealWorld),Compact#,Addr# #)+compactFixupPointers# = compactFixupPointers#++-- | Recursively add a closure and its transitive closure to a+-- @Compact\#@ (a CNF), evaluating any unevaluated components+-- at the same time. Note: @compactAdd\#@ is not thread-safe, so+-- only one thread may call @compactAdd\#@ with a particular+-- @Compact\#@ at any given time. The primop does not+-- enforce any mutual exclusion; the caller is expected to+-- arrange this. +compactAdd# :: Compact# -> a -> State# (RealWorld) -> (# State# (RealWorld),a #)+compactAdd# = compactAdd#++-- | Like @compactAdd\#@, but retains sharing and cycles+-- during compaction. +compactAddWithSharing# :: Compact# -> a -> State# (RealWorld) -> (# State# (RealWorld),a #)+compactAddWithSharing# = compactAddWithSharing#++-- | Return the total capacity (in bytes) of all the compact blocks+-- in the CNF. +compactSize# :: Compact# -> State# (RealWorld) -> (# State# (RealWorld),Word# #)+compactSize# = compactSize#++-- | Returns @1\#@ if the given pointers are equal and @0\#@ otherwise. +-- +-- __/Warning:/__ this can fail with an unchecked exception.+reallyUnsafePtrEquality# :: a -> a -> Int#+reallyUnsafePtrEquality# = reallyUnsafePtrEquality#++{-# DEPRECATED par# " Use 'spark#' instead " #-}+par# :: a -> Int#+par# = par#++spark# :: a -> State# s -> (# State# s,a #)+spark# = spark#++seq# :: a -> State# s -> (# State# s,a #)+seq# = seq#++getSpark# :: State# s -> (# State# s,Int#,a #)+getSpark# = getSpark#++-- | Returns the number of sparks in the local spark pool. +numSparks# :: State# s -> (# State# s,Int# #)+numSparks# = numSparks#++dataToTag# :: a -> Int#+dataToTag# = dataToTag#++tagToEnum# :: Int# -> a+tagToEnum# = let x = x in x++-- | Primitive bytecode type. +data BCO#++-- | Convert an @Addr\#@ to a followable Any type. +addrToAny# :: Addr# -> (# a #)+addrToAny# = addrToAny#++-- | Retrieve the address of any Haskell value. This is+-- essentially an @unsafeCoerce\#@, but if implemented as such+-- the core lint pass complains and fails to compile.+-- As a primop, it is opaque to core\/stg, and only appears+-- in cmm (where the copy propagation pass will get rid of it).+-- Note that \"a\" must be a value, not a thunk! It\'s too late+-- for strictness analysis to enforce this, so you\'re on your+-- own to guarantee this. Also note that @Addr\#@ is not a GC+-- pointer - up to you to guarantee that it does not become+-- a dangling pointer immediately after you get it.+anyToAddr# :: a -> State# (RealWorld) -> (# State# (RealWorld),Addr# #)+anyToAddr# = anyToAddr#++-- | Wrap a BCO in a @AP_UPD@ thunk which will be updated with the value of+-- the BCO when evaluated. +mkApUpd0# :: BCO# -> (# a #)+mkApUpd0# = mkApUpd0#++-- | @newBCO\# instrs lits ptrs arity bitmap@ creates a new bytecode object. The+-- resulting object encodes a function of the given arity with the instructions+-- encoded in @instrs@, and a static reference table usage bitmap given by+-- @bitmap@. +newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# s -> (# State# s,BCO# #)+newBCO# = newBCO#++-- | @unpackClosure\# closure@ copies the closure and pointers in the+-- payload of the given closure into two new arrays, and returns a pointer to+-- the first word of the closure\'s info table, a non-pointer array for the raw+-- bytes of the closure, and a pointer array for the pointers in the payload. +unpackClosure# :: a -> (# Addr#,ByteArray#,Array# b #)+unpackClosure# = unpackClosure#++-- | @closureSize\# closure@ returns the size of the given closure in+-- machine words. +closureSize# :: a -> Int#+closureSize# = closureSize#++getApStackVal# :: a -> Int# -> (# Int#,b #)+getApStackVal# = getApStackVal#++getCCSOf# :: a -> State# s -> (# State# s,Addr# #)+getCCSOf# = getCCSOf#++-- | Returns the current @CostCentreStack@ (value is @NULL@ if+-- not profiling). Takes a dummy argument which can be used to+-- avoid the call to @getCurrentCCS\#@ being floated out by the+-- simplifier, which would result in an uninformative stack+-- (\"CAF\"). +getCurrentCCS# :: a -> State# s -> (# State# s,Addr# #)+getCurrentCCS# = getCurrentCCS#++-- | Run the supplied IO action with an empty CCS. For example, this+-- is used by the interpreter to run an interpreted computation+-- without the call stack showing that it was invoked from GHC. +clearCCS# :: (State# s -> (# State# s,a #)) -> State# s -> (# State# s,a #)+clearCCS# = clearCCS#++-- | The type constructor @Proxy#@ is used to bear witness to some+-- type variable. It\'s used when you want to pass around proxy values+-- for doing things like modelling type applications. A @Proxy#@+-- is not only unboxed, it also has a polymorphic kind, and has no+-- runtime representation, being totally free. +data Proxy# a++-- | Witness for an unboxed @Proxy#@ value, which has no runtime+-- representation. +proxy# :: Proxy# a+proxy# = proxy#++-- | The value of @seq a b@ is bottom if @a@ is bottom, and+-- otherwise equal to @b@. In other words, it evaluates the first+-- argument @a@ to weak head normal form (WHNF). @seq@ is usually+-- introduced to improve performance by avoiding unneeded laziness.+-- +-- A note on evaluation order: the expression @seq a b@ does+-- /not/ guarantee that @a@ will be evaluated before @b@.+-- The only guarantee given by @seq@ is that the both @a@+-- and @b@ will be evaluated before @seq@ returns a value.+-- In particular, this means that @b@ may be evaluated before+-- @a@. If you need to guarantee a specific order of evaluation,+-- you must use the function @pseq@ from the \"parallel\" package. +infixr 0 `seq`+seq :: a -> b -> b+seq = seq++-- | The function @unsafeCoerce\#@ allows you to side-step the typechecker entirely. That+-- is, it allows you to coerce any type into any other type. If you use this function,+-- you had better get it right, otherwise segmentation faults await. It is generally+-- used when you want to write a program that you know is well-typed, but where Haskell\'s+-- type system is not expressive enough to prove that it is well typed.+-- +-- The following uses of @unsafeCoerce\#@ are supposed to work (i.e. not lead to+-- spurious compile-time or run-time crashes):+-- +-- * Casting any lifted type to @Any@+-- +-- * Casting @Any@ back to the real type+-- +-- * Casting an unboxed type to another unboxed type of the same size.+-- (Casting between floating-point and integral types does not work.+-- See the @GHC.Float@ module for functions to do work.)+-- +-- * Casting between two types that have the same runtime representation. One case is when+-- the two types differ only in \"phantom\" type parameters, for example+-- @Ptr Int@ to @Ptr Float@, or @[Int]@ to @[Float]@ when the list is+-- known to be empty. Also, a @newtype@ of a type @T@ has the same representation+-- at runtime as @T@.+-- +-- Other uses of @unsafeCoerce\#@ are undefined. In particular, you should not use+-- @unsafeCoerce\#@ to cast a T to an algebraic data type D, unless T is also+-- an algebraic data type. For example, do not cast @Int->Int@ to @Bool@, even if+-- you later cast that @Bool@ back to @Int->Int@ before applying it. The reasons+-- have to do with GHC\'s internal representation details (for the cognoscenti, data values+-- can be entered but function closures cannot). If you want a safe type to cast things+-- to, use @Any@, which is not an algebraic data type.+-- +-- +-- +-- __/Warning:/__ this can fail with an unchecked exception.+unsafeCoerce# :: a -> b+unsafeCoerce# = unsafeCoerce#++-- | Emits an event via the RTS tracing framework. The contents+-- of the event is the zero-terminated byte string passed as the first+-- argument. The event will be emitted either to the @.eventlog@ file,+-- or to stderr, depending on the runtime RTS flags. +traceEvent# :: Addr# -> State# s -> State# s+traceEvent# = traceEvent#++-- | Emits an event via the RTS tracing framework. The contents+-- of the event is the binary object passed as the first argument with+-- the the given length passed as the second argument. The event will be+-- emitted to the @.eventlog@ file. +traceBinaryEvent# :: Addr# -> Int# -> State# s -> State# s+traceBinaryEvent# = traceBinaryEvent#++-- | Emits a marker event via the RTS tracing framework. The contents+-- of the event is the zero-terminated byte string passed as the first+-- argument. The event will be emitted either to the @.eventlog@ file,+-- or to stderr, depending on the runtime RTS flags. +traceMarker# :: Addr# -> State# s -> State# s+traceMarker# = traceMarker#++-- | Sets the allocation counter for the current thread to the given value. +setThreadAllocationCounter# :: Int# -> State# (RealWorld) -> State# (RealWorld)+setThreadAllocationCounter# = setThreadAllocationCounter#++-- | The function @coerce@ allows you to safely convert between values of+-- types that have the same representation with no run-time overhead. In the+-- simplest case you can use it instead of a newtype constructor, to go from+-- the newtype\'s concrete type to the abstract type. But it also works in+-- more complicated settings, e.g. converting a list of newtypes to a list of+-- concrete types.+-- +-- This function is runtime-representation polymorphic, but the+-- @RuntimeRep@ type argument is marked as @Inferred@, meaning+-- that it is not available for visible type application. This means+-- the typechecker will accept @coerce \@Int \@Age 42@.+-- +coerce :: Coercible a b => a -> b+coerce = coerce++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int8X16#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int16X8#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int32X4#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int64X2#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int8X32#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int16X16#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int32X8#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int64X4#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int8X64#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int16X32#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int32X16#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Int64X8#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word8X16#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word16X8#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word32X4#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word64X2#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word8X32#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word16X16#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word32X8#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word64X4#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word8X64#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word16X32#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word32X16#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data Word64X8#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data FloatX4#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data DoubleX2#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data FloatX8#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data DoubleX4#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data FloatX16#++-- |+-- +-- __/Warning:/__ this is only available on LLVM.+data DoubleX8#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt8X16# :: Int# -> Int8X16#+broadcastInt8X16# = broadcastInt8X16#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt16X8# :: Int# -> Int16X8#+broadcastInt16X8# = broadcastInt16X8#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt32X4# :: Int# -> Int32X4#+broadcastInt32X4# = broadcastInt32X4#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt64X2# :: Int# -> Int64X2#+broadcastInt64X2# = broadcastInt64X2#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt8X32# :: Int# -> Int8X32#+broadcastInt8X32# = broadcastInt8X32#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt16X16# :: Int# -> Int16X16#+broadcastInt16X16# = broadcastInt16X16#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt32X8# :: Int# -> Int32X8#+broadcastInt32X8# = broadcastInt32X8#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt64X4# :: Int# -> Int64X4#+broadcastInt64X4# = broadcastInt64X4#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt8X64# :: Int# -> Int8X64#+broadcastInt8X64# = broadcastInt8X64#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt16X32# :: Int# -> Int16X32#+broadcastInt16X32# = broadcastInt16X32#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt32X16# :: Int# -> Int32X16#+broadcastInt32X16# = broadcastInt32X16#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastInt64X8# :: Int# -> Int64X8#+broadcastInt64X8# = broadcastInt64X8#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord8X16# :: Word# -> Word8X16#+broadcastWord8X16# = broadcastWord8X16#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord16X8# :: Word# -> Word16X8#+broadcastWord16X8# = broadcastWord16X8#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord32X4# :: Word# -> Word32X4#+broadcastWord32X4# = broadcastWord32X4#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord64X2# :: Word# -> Word64X2#+broadcastWord64X2# = broadcastWord64X2#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord8X32# :: Word# -> Word8X32#+broadcastWord8X32# = broadcastWord8X32#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord16X16# :: Word# -> Word16X16#+broadcastWord16X16# = broadcastWord16X16#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord32X8# :: Word# -> Word32X8#+broadcastWord32X8# = broadcastWord32X8#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord64X4# :: Word# -> Word64X4#+broadcastWord64X4# = broadcastWord64X4#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord8X64# :: Word# -> Word8X64#+broadcastWord8X64# = broadcastWord8X64#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord16X32# :: Word# -> Word16X32#+broadcastWord16X32# = broadcastWord16X32#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord32X16# :: Word# -> Word32X16#+broadcastWord32X16# = broadcastWord32X16#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastWord64X8# :: Word# -> Word64X8#+broadcastWord64X8# = broadcastWord64X8#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastFloatX4# :: Float# -> FloatX4#+broadcastFloatX4# = broadcastFloatX4#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastDoubleX2# :: Double# -> DoubleX2#+broadcastDoubleX2# = broadcastDoubleX2#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastFloatX8# :: Float# -> FloatX8#+broadcastFloatX8# = broadcastFloatX8#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastDoubleX4# :: Double# -> DoubleX4#+broadcastDoubleX4# = broadcastDoubleX4#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastFloatX16# :: Float# -> FloatX16#+broadcastFloatX16# = broadcastFloatX16#++-- | Broadcast a scalar to all elements of a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+broadcastDoubleX8# :: Double# -> DoubleX8#+broadcastDoubleX8# = broadcastDoubleX8#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt8X16# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int8X16#+packInt8X16# = packInt8X16#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt16X8# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int16X8#+packInt16X8# = packInt16X8#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt32X4# :: (# Int#,Int#,Int#,Int# #) -> Int32X4#+packInt32X4# = packInt32X4#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt64X2# :: (# Int#,Int# #) -> Int64X2#+packInt64X2# = packInt64X2#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt8X32# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int8X32#+packInt8X32# = packInt8X32#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt16X16# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int16X16#+packInt16X16# = packInt16X16#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt32X8# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int32X8#+packInt32X8# = packInt32X8#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt64X4# :: (# Int#,Int#,Int#,Int# #) -> Int64X4#+packInt64X4# = packInt64X4#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt8X64# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int8X64#+packInt8X64# = packInt8X64#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt16X32# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int16X32#+packInt16X32# = packInt16X32#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt32X16# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int32X16#+packInt32X16# = packInt32X16#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packInt64X8# :: (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #) -> Int64X8#+packInt64X8# = packInt64X8#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord8X16# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word8X16#+packWord8X16# = packWord8X16#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord16X8# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word16X8#+packWord16X8# = packWord16X8#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord32X4# :: (# Word#,Word#,Word#,Word# #) -> Word32X4#+packWord32X4# = packWord32X4#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord64X2# :: (# Word#,Word# #) -> Word64X2#+packWord64X2# = packWord64X2#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord8X32# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word8X32#+packWord8X32# = packWord8X32#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord16X16# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word16X16#+packWord16X16# = packWord16X16#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord32X8# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word32X8#+packWord32X8# = packWord32X8#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord64X4# :: (# Word#,Word#,Word#,Word# #) -> Word64X4#+packWord64X4# = packWord64X4#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord8X64# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word8X64#+packWord8X64# = packWord8X64#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord16X32# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word16X32#+packWord16X32# = packWord16X32#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord32X16# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word32X16#+packWord32X16# = packWord32X16#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packWord64X8# :: (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #) -> Word64X8#+packWord64X8# = packWord64X8#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packFloatX4# :: (# Float#,Float#,Float#,Float# #) -> FloatX4#+packFloatX4# = packFloatX4#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packDoubleX2# :: (# Double#,Double# #) -> DoubleX2#+packDoubleX2# = packDoubleX2#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packFloatX8# :: (# Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float# #) -> FloatX8#+packFloatX8# = packFloatX8#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packDoubleX4# :: (# Double#,Double#,Double#,Double# #) -> DoubleX4#+packDoubleX4# = packDoubleX4#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packFloatX16# :: (# Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float# #) -> FloatX16#+packFloatX16# = packFloatX16#++-- | Pack the elements of an unboxed tuple into a vector. +-- +-- __/Warning:/__ this is only available on LLVM.+packDoubleX8# :: (# Double#,Double#,Double#,Double#,Double#,Double#,Double#,Double# #) -> DoubleX8#+packDoubleX8# = packDoubleX8#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt8X16# :: Int8X16# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)+unpackInt8X16# = unpackInt8X16#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt16X8# :: Int16X8# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)+unpackInt16X8# = unpackInt16X8#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt32X4# :: Int32X4# -> (# Int#,Int#,Int#,Int# #)+unpackInt32X4# = unpackInt32X4#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt64X2# :: Int64X2# -> (# Int#,Int# #)+unpackInt64X2# = unpackInt64X2#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt8X32# :: Int8X32# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)+unpackInt8X32# = unpackInt8X32#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt16X16# :: Int16X16# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)+unpackInt16X16# = unpackInt16X16#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt32X8# :: Int32X8# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)+unpackInt32X8# = unpackInt32X8#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt64X4# :: Int64X4# -> (# Int#,Int#,Int#,Int# #)+unpackInt64X4# = unpackInt64X4#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt8X64# :: Int8X64# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)+unpackInt8X64# = unpackInt8X64#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt16X32# :: Int16X32# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)+unpackInt16X32# = unpackInt16X32#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt32X16# :: Int32X16# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)+unpackInt32X16# = unpackInt32X16#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackInt64X8# :: Int64X8# -> (# Int#,Int#,Int#,Int#,Int#,Int#,Int#,Int# #)+unpackInt64X8# = unpackInt64X8#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord8X16# :: Word8X16# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)+unpackWord8X16# = unpackWord8X16#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord16X8# :: Word16X8# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)+unpackWord16X8# = unpackWord16X8#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord32X4# :: Word32X4# -> (# Word#,Word#,Word#,Word# #)+unpackWord32X4# = unpackWord32X4#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord64X2# :: Word64X2# -> (# Word#,Word# #)+unpackWord64X2# = unpackWord64X2#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord8X32# :: Word8X32# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)+unpackWord8X32# = unpackWord8X32#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord16X16# :: Word16X16# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)+unpackWord16X16# = unpackWord16X16#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord32X8# :: Word32X8# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)+unpackWord32X8# = unpackWord32X8#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord64X4# :: Word64X4# -> (# Word#,Word#,Word#,Word# #)+unpackWord64X4# = unpackWord64X4#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord8X64# :: Word8X64# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)+unpackWord8X64# = unpackWord8X64#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord16X32# :: Word16X32# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)+unpackWord16X32# = unpackWord16X32#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord32X16# :: Word32X16# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)+unpackWord32X16# = unpackWord32X16#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackWord64X8# :: Word64X8# -> (# Word#,Word#,Word#,Word#,Word#,Word#,Word#,Word# #)+unpackWord64X8# = unpackWord64X8#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackFloatX4# :: FloatX4# -> (# Float#,Float#,Float#,Float# #)+unpackFloatX4# = unpackFloatX4#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackDoubleX2# :: DoubleX2# -> (# Double#,Double# #)+unpackDoubleX2# = unpackDoubleX2#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackFloatX8# :: FloatX8# -> (# Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float# #)+unpackFloatX8# = unpackFloatX8#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackDoubleX4# :: DoubleX4# -> (# Double#,Double#,Double#,Double# #)+unpackDoubleX4# = unpackDoubleX4#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackFloatX16# :: FloatX16# -> (# Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float#,Float# #)+unpackFloatX16# = unpackFloatX16#++-- | Unpack the elements of a vector into an unboxed tuple. #+-- +-- __/Warning:/__ this is only available on LLVM.+unpackDoubleX8# :: DoubleX8# -> (# Double#,Double#,Double#,Double#,Double#,Double#,Double#,Double# #)+unpackDoubleX8# = unpackDoubleX8#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt8X16# :: Int8X16# -> Int# -> Int# -> Int8X16#+insertInt8X16# = insertInt8X16#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt16X8# :: Int16X8# -> Int# -> Int# -> Int16X8#+insertInt16X8# = insertInt16X8#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt32X4# :: Int32X4# -> Int# -> Int# -> Int32X4#+insertInt32X4# = insertInt32X4#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt64X2# :: Int64X2# -> Int# -> Int# -> Int64X2#+insertInt64X2# = insertInt64X2#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt8X32# :: Int8X32# -> Int# -> Int# -> Int8X32#+insertInt8X32# = insertInt8X32#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt16X16# :: Int16X16# -> Int# -> Int# -> Int16X16#+insertInt16X16# = insertInt16X16#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt32X8# :: Int32X8# -> Int# -> Int# -> Int32X8#+insertInt32X8# = insertInt32X8#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt64X4# :: Int64X4# -> Int# -> Int# -> Int64X4#+insertInt64X4# = insertInt64X4#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt8X64# :: Int8X64# -> Int# -> Int# -> Int8X64#+insertInt8X64# = insertInt8X64#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt16X32# :: Int16X32# -> Int# -> Int# -> Int16X32#+insertInt16X32# = insertInt16X32#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt32X16# :: Int32X16# -> Int# -> Int# -> Int32X16#+insertInt32X16# = insertInt32X16#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertInt64X8# :: Int64X8# -> Int# -> Int# -> Int64X8#+insertInt64X8# = insertInt64X8#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord8X16# :: Word8X16# -> Word# -> Int# -> Word8X16#+insertWord8X16# = insertWord8X16#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord16X8# :: Word16X8# -> Word# -> Int# -> Word16X8#+insertWord16X8# = insertWord16X8#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord32X4# :: Word32X4# -> Word# -> Int# -> Word32X4#+insertWord32X4# = insertWord32X4#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord64X2# :: Word64X2# -> Word# -> Int# -> Word64X2#+insertWord64X2# = insertWord64X2#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord8X32# :: Word8X32# -> Word# -> Int# -> Word8X32#+insertWord8X32# = insertWord8X32#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord16X16# :: Word16X16# -> Word# -> Int# -> Word16X16#+insertWord16X16# = insertWord16X16#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord32X8# :: Word32X8# -> Word# -> Int# -> Word32X8#+insertWord32X8# = insertWord32X8#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord64X4# :: Word64X4# -> Word# -> Int# -> Word64X4#+insertWord64X4# = insertWord64X4#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord8X64# :: Word8X64# -> Word# -> Int# -> Word8X64#+insertWord8X64# = insertWord8X64#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord16X32# :: Word16X32# -> Word# -> Int# -> Word16X32#+insertWord16X32# = insertWord16X32#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord32X16# :: Word32X16# -> Word# -> Int# -> Word32X16#+insertWord32X16# = insertWord32X16#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertWord64X8# :: Word64X8# -> Word# -> Int# -> Word64X8#+insertWord64X8# = insertWord64X8#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertFloatX4# :: FloatX4# -> Float# -> Int# -> FloatX4#+insertFloatX4# = insertFloatX4#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertDoubleX2# :: DoubleX2# -> Double# -> Int# -> DoubleX2#+insertDoubleX2# = insertDoubleX2#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertFloatX8# :: FloatX8# -> Float# -> Int# -> FloatX8#+insertFloatX8# = insertFloatX8#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertDoubleX4# :: DoubleX4# -> Double# -> Int# -> DoubleX4#+insertDoubleX4# = insertDoubleX4#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertFloatX16# :: FloatX16# -> Float# -> Int# -> FloatX16#+insertFloatX16# = insertFloatX16#++-- | Insert a scalar at the given position in a vector. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+insertDoubleX8# :: DoubleX8# -> Double# -> Int# -> DoubleX8#+insertDoubleX8# = insertDoubleX8#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#+plusInt8X16# = plusInt8X16#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#+plusInt16X8# = plusInt16X8#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#+plusInt32X4# = plusInt32X4#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#+plusInt64X2# = plusInt64X2#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#+plusInt8X32# = plusInt8X32#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#+plusInt16X16# = plusInt16X16#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#+plusInt32X8# = plusInt32X8#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#+plusInt64X4# = plusInt64X4#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#+plusInt8X64# = plusInt8X64#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#+plusInt16X32# = plusInt16X32#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#+plusInt32X16# = plusInt32X16#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#+plusInt64X8# = plusInt64X8#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#+plusWord8X16# = plusWord8X16#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#+plusWord16X8# = plusWord16X8#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#+plusWord32X4# = plusWord32X4#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#+plusWord64X2# = plusWord64X2#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#+plusWord8X32# = plusWord8X32#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#+plusWord16X16# = plusWord16X16#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#+plusWord32X8# = plusWord32X8#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#+plusWord64X4# = plusWord64X4#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#+plusWord8X64# = plusWord8X64#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#+plusWord16X32# = plusWord16X32#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#+plusWord32X16# = plusWord32X16#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#+plusWord64X8# = plusWord64X8#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusFloatX4# :: FloatX4# -> FloatX4# -> FloatX4#+plusFloatX4# = plusFloatX4#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2#+plusDoubleX2# = plusDoubleX2#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusFloatX8# :: FloatX8# -> FloatX8# -> FloatX8#+plusFloatX8# = plusFloatX8#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4#+plusDoubleX4# = plusDoubleX4#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusFloatX16# :: FloatX16# -> FloatX16# -> FloatX16#+plusFloatX16# = plusFloatX16#++-- | Add two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+plusDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8#+plusDoubleX8# = plusDoubleX8#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#+minusInt8X16# = minusInt8X16#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#+minusInt16X8# = minusInt16X8#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#+minusInt32X4# = minusInt32X4#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#+minusInt64X2# = minusInt64X2#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#+minusInt8X32# = minusInt8X32#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#+minusInt16X16# = minusInt16X16#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#+minusInt32X8# = minusInt32X8#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#+minusInt64X4# = minusInt64X4#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#+minusInt8X64# = minusInt8X64#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#+minusInt16X32# = minusInt16X32#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#+minusInt32X16# = minusInt32X16#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#+minusInt64X8# = minusInt64X8#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#+minusWord8X16# = minusWord8X16#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#+minusWord16X8# = minusWord16X8#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#+minusWord32X4# = minusWord32X4#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#+minusWord64X2# = minusWord64X2#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#+minusWord8X32# = minusWord8X32#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#+minusWord16X16# = minusWord16X16#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#+minusWord32X8# = minusWord32X8#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#+minusWord64X4# = minusWord64X4#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#+minusWord8X64# = minusWord8X64#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#+minusWord16X32# = minusWord16X32#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#+minusWord32X16# = minusWord32X16#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#+minusWord64X8# = minusWord64X8#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusFloatX4# :: FloatX4# -> FloatX4# -> FloatX4#+minusFloatX4# = minusFloatX4#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2#+minusDoubleX2# = minusDoubleX2#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusFloatX8# :: FloatX8# -> FloatX8# -> FloatX8#+minusFloatX8# = minusFloatX8#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4#+minusDoubleX4# = minusDoubleX4#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusFloatX16# :: FloatX16# -> FloatX16# -> FloatX16#+minusFloatX16# = minusFloatX16#++-- | Subtract two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+minusDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8#+minusDoubleX8# = minusDoubleX8#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#+timesInt8X16# = timesInt8X16#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#+timesInt16X8# = timesInt16X8#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#+timesInt32X4# = timesInt32X4#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#+timesInt64X2# = timesInt64X2#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#+timesInt8X32# = timesInt8X32#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#+timesInt16X16# = timesInt16X16#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#+timesInt32X8# = timesInt32X8#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#+timesInt64X4# = timesInt64X4#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#+timesInt8X64# = timesInt8X64#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#+timesInt16X32# = timesInt16X32#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#+timesInt32X16# = timesInt32X16#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#+timesInt64X8# = timesInt64X8#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#+timesWord8X16# = timesWord8X16#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#+timesWord16X8# = timesWord16X8#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#+timesWord32X4# = timesWord32X4#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#+timesWord64X2# = timesWord64X2#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#+timesWord8X32# = timesWord8X32#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#+timesWord16X16# = timesWord16X16#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#+timesWord32X8# = timesWord32X8#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#+timesWord64X4# = timesWord64X4#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#+timesWord8X64# = timesWord8X64#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#+timesWord16X32# = timesWord16X32#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#+timesWord32X16# = timesWord32X16#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#+timesWord64X8# = timesWord64X8#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesFloatX4# :: FloatX4# -> FloatX4# -> FloatX4#+timesFloatX4# = timesFloatX4#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2#+timesDoubleX2# = timesDoubleX2#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesFloatX8# :: FloatX8# -> FloatX8# -> FloatX8#+timesFloatX8# = timesFloatX8#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4#+timesDoubleX4# = timesDoubleX4#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesFloatX16# :: FloatX16# -> FloatX16# -> FloatX16#+timesFloatX16# = timesFloatX16#++-- | Multiply two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+timesDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8#+timesDoubleX8# = timesDoubleX8#++-- | Divide two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+divideFloatX4# :: FloatX4# -> FloatX4# -> FloatX4#+divideFloatX4# = divideFloatX4#++-- | Divide two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+divideDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2#+divideDoubleX2# = divideDoubleX2#++-- | Divide two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+divideFloatX8# :: FloatX8# -> FloatX8# -> FloatX8#+divideFloatX8# = divideFloatX8#++-- | Divide two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+divideDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4#+divideDoubleX4# = divideDoubleX4#++-- | Divide two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+divideFloatX16# :: FloatX16# -> FloatX16# -> FloatX16#+divideFloatX16# = divideFloatX16#++-- | Divide two vectors element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+divideDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8#+divideDoubleX8# = divideDoubleX8#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#+quotInt8X16# = quotInt8X16#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#+quotInt16X8# = quotInt16X8#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#+quotInt32X4# = quotInt32X4#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#+quotInt64X2# = quotInt64X2#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#+quotInt8X32# = quotInt8X32#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#+quotInt16X16# = quotInt16X16#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#+quotInt32X8# = quotInt32X8#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#+quotInt64X4# = quotInt64X4#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#+quotInt8X64# = quotInt8X64#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#+quotInt16X32# = quotInt16X32#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#+quotInt32X16# = quotInt32X16#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#+quotInt64X8# = quotInt64X8#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#+quotWord8X16# = quotWord8X16#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#+quotWord16X8# = quotWord16X8#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#+quotWord32X4# = quotWord32X4#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#+quotWord64X2# = quotWord64X2#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#+quotWord8X32# = quotWord8X32#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#+quotWord16X16# = quotWord16X16#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#+quotWord32X8# = quotWord32X8#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#+quotWord64X4# = quotWord64X4#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#+quotWord8X64# = quotWord8X64#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#+quotWord16X32# = quotWord16X32#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#+quotWord32X16# = quotWord32X16#++-- | Rounds towards zero element-wise. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+quotWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#+quotWord64X8# = quotWord64X8#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt8X16# :: Int8X16# -> Int8X16# -> Int8X16#+remInt8X16# = remInt8X16#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt16X8# :: Int16X8# -> Int16X8# -> Int16X8#+remInt16X8# = remInt16X8#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt32X4# :: Int32X4# -> Int32X4# -> Int32X4#+remInt32X4# = remInt32X4#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt64X2# :: Int64X2# -> Int64X2# -> Int64X2#+remInt64X2# = remInt64X2#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt8X32# :: Int8X32# -> Int8X32# -> Int8X32#+remInt8X32# = remInt8X32#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt16X16# :: Int16X16# -> Int16X16# -> Int16X16#+remInt16X16# = remInt16X16#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt32X8# :: Int32X8# -> Int32X8# -> Int32X8#+remInt32X8# = remInt32X8#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt64X4# :: Int64X4# -> Int64X4# -> Int64X4#+remInt64X4# = remInt64X4#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt8X64# :: Int8X64# -> Int8X64# -> Int8X64#+remInt8X64# = remInt8X64#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt16X32# :: Int16X32# -> Int16X32# -> Int16X32#+remInt16X32# = remInt16X32#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt32X16# :: Int32X16# -> Int32X16# -> Int32X16#+remInt32X16# = remInt32X16#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remInt64X8# :: Int64X8# -> Int64X8# -> Int64X8#+remInt64X8# = remInt64X8#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord8X16# :: Word8X16# -> Word8X16# -> Word8X16#+remWord8X16# = remWord8X16#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord16X8# :: Word16X8# -> Word16X8# -> Word16X8#+remWord16X8# = remWord16X8#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord32X4# :: Word32X4# -> Word32X4# -> Word32X4#+remWord32X4# = remWord32X4#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord64X2# :: Word64X2# -> Word64X2# -> Word64X2#+remWord64X2# = remWord64X2#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord8X32# :: Word8X32# -> Word8X32# -> Word8X32#+remWord8X32# = remWord8X32#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord16X16# :: Word16X16# -> Word16X16# -> Word16X16#+remWord16X16# = remWord16X16#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord32X8# :: Word32X8# -> Word32X8# -> Word32X8#+remWord32X8# = remWord32X8#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord64X4# :: Word64X4# -> Word64X4# -> Word64X4#+remWord64X4# = remWord64X4#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord8X64# :: Word8X64# -> Word8X64# -> Word8X64#+remWord8X64# = remWord8X64#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord16X32# :: Word16X32# -> Word16X32# -> Word16X32#+remWord16X32# = remWord16X32#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord32X16# :: Word32X16# -> Word32X16# -> Word32X16#+remWord32X16# = remWord32X16#++-- | Satisfies @(quot\# x y) times\# y plus\# (rem\# x y) == x@. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+remWord64X8# :: Word64X8# -> Word64X8# -> Word64X8#+remWord64X8# = remWord64X8#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt8X16# :: Int8X16# -> Int8X16#+negateInt8X16# = negateInt8X16#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt16X8# :: Int16X8# -> Int16X8#+negateInt16X8# = negateInt16X8#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt32X4# :: Int32X4# -> Int32X4#+negateInt32X4# = negateInt32X4#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt64X2# :: Int64X2# -> Int64X2#+negateInt64X2# = negateInt64X2#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt8X32# :: Int8X32# -> Int8X32#+negateInt8X32# = negateInt8X32#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt16X16# :: Int16X16# -> Int16X16#+negateInt16X16# = negateInt16X16#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt32X8# :: Int32X8# -> Int32X8#+negateInt32X8# = negateInt32X8#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt64X4# :: Int64X4# -> Int64X4#+negateInt64X4# = negateInt64X4#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt8X64# :: Int8X64# -> Int8X64#+negateInt8X64# = negateInt8X64#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt16X32# :: Int16X32# -> Int16X32#+negateInt16X32# = negateInt16X32#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt32X16# :: Int32X16# -> Int32X16#+negateInt32X16# = negateInt32X16#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateInt64X8# :: Int64X8# -> Int64X8#+negateInt64X8# = negateInt64X8#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateFloatX4# :: FloatX4# -> FloatX4#+negateFloatX4# = negateFloatX4#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateDoubleX2# :: DoubleX2# -> DoubleX2#+negateDoubleX2# = negateDoubleX2#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateFloatX8# :: FloatX8# -> FloatX8#+negateFloatX8# = negateFloatX8#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateDoubleX4# :: DoubleX4# -> DoubleX4#+negateDoubleX4# = negateDoubleX4#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateFloatX16# :: FloatX16# -> FloatX16#+negateFloatX16# = negateFloatX16#++-- | Negate element-wise. +-- +-- __/Warning:/__ this is only available on LLVM.+negateDoubleX8# :: DoubleX8# -> DoubleX8#+negateDoubleX8# = negateDoubleX8#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8X16Array# :: ByteArray# -> Int# -> Int8X16#+indexInt8X16Array# = indexInt8X16Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16X8Array# :: ByteArray# -> Int# -> Int16X8#+indexInt16X8Array# = indexInt16X8Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32X4Array# :: ByteArray# -> Int# -> Int32X4#+indexInt32X4Array# = indexInt32X4Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64X2Array# :: ByteArray# -> Int# -> Int64X2#+indexInt64X2Array# = indexInt64X2Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8X32Array# :: ByteArray# -> Int# -> Int8X32#+indexInt8X32Array# = indexInt8X32Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16X16Array# :: ByteArray# -> Int# -> Int16X16#+indexInt16X16Array# = indexInt16X16Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32X8Array# :: ByteArray# -> Int# -> Int32X8#+indexInt32X8Array# = indexInt32X8Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64X4Array# :: ByteArray# -> Int# -> Int64X4#+indexInt64X4Array# = indexInt64X4Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8X64Array# :: ByteArray# -> Int# -> Int8X64#+indexInt8X64Array# = indexInt8X64Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16X32Array# :: ByteArray# -> Int# -> Int16X32#+indexInt16X32Array# = indexInt16X32Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32X16Array# :: ByteArray# -> Int# -> Int32X16#+indexInt32X16Array# = indexInt32X16Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64X8Array# :: ByteArray# -> Int# -> Int64X8#+indexInt64X8Array# = indexInt64X8Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8X16Array# :: ByteArray# -> Int# -> Word8X16#+indexWord8X16Array# = indexWord8X16Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16X8Array# :: ByteArray# -> Int# -> Word16X8#+indexWord16X8Array# = indexWord16X8Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32X4Array# :: ByteArray# -> Int# -> Word32X4#+indexWord32X4Array# = indexWord32X4Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64X2Array# :: ByteArray# -> Int# -> Word64X2#+indexWord64X2Array# = indexWord64X2Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8X32Array# :: ByteArray# -> Int# -> Word8X32#+indexWord8X32Array# = indexWord8X32Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16X16Array# :: ByteArray# -> Int# -> Word16X16#+indexWord16X16Array# = indexWord16X16Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32X8Array# :: ByteArray# -> Int# -> Word32X8#+indexWord32X8Array# = indexWord32X8Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64X4Array# :: ByteArray# -> Int# -> Word64X4#+indexWord64X4Array# = indexWord64X4Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8X64Array# :: ByteArray# -> Int# -> Word8X64#+indexWord8X64Array# = indexWord8X64Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16X32Array# :: ByteArray# -> Int# -> Word16X32#+indexWord16X32Array# = indexWord16X32Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32X16Array# :: ByteArray# -> Int# -> Word32X16#+indexWord32X16Array# = indexWord32X16Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64X8Array# :: ByteArray# -> Int# -> Word64X8#+indexWord64X8Array# = indexWord64X8Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatX4Array# :: ByteArray# -> Int# -> FloatX4#+indexFloatX4Array# = indexFloatX4Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleX2Array# :: ByteArray# -> Int# -> DoubleX2#+indexDoubleX2Array# = indexDoubleX2Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatX8Array# :: ByteArray# -> Int# -> FloatX8#+indexFloatX8Array# = indexFloatX8Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleX4Array# :: ByteArray# -> Int# -> DoubleX4#+indexDoubleX4Array# = indexDoubleX4Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatX16Array# :: ByteArray# -> Int# -> FloatX16#+indexFloatX16Array# = indexFloatX16Array#++-- | Read a vector from specified index of immutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleX8Array# :: ByteArray# -> Int# -> DoubleX8#+indexDoubleX8Array# = indexDoubleX8Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X16# #)+readInt8X16Array# = readInt8X16Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X8# #)+readInt16X8Array# = readInt16X8Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32X4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X4# #)+readInt32X4Array# = readInt32X4Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64X2Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X2# #)+readInt64X2Array# = readInt64X2Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8X32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X32# #)+readInt8X32Array# = readInt8X32Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X16# #)+readInt16X16Array# = readInt16X16Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X8# #)+readInt32X8Array# = readInt32X8Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64X4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X4# #)+readInt64X4Array# = readInt64X4Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8X64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X64# #)+readInt8X64Array# = readInt8X64Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16X32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X32# #)+readInt16X32Array# = readInt16X32Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X16# #)+readInt32X16Array# = readInt32X16Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X8# #)+readInt64X8Array# = readInt64X8Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X16# #)+readWord8X16Array# = readWord8X16Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X8# #)+readWord16X8Array# = readWord16X8Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32X4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X4# #)+readWord32X4Array# = readWord32X4Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64X2Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X2# #)+readWord64X2Array# = readWord64X2Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8X32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X32# #)+readWord8X32Array# = readWord8X32Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X16# #)+readWord16X16Array# = readWord16X16Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X8# #)+readWord32X8Array# = readWord32X8Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64X4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X4# #)+readWord64X4Array# = readWord64X4Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8X64Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X64# #)+readWord8X64Array# = readWord8X64Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16X32Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X32# #)+readWord16X32Array# = readWord16X32Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32X16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X16# #)+readWord32X16Array# = readWord32X16Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64X8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X8# #)+readWord64X8Array# = readWord64X8Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatX4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX4# #)+readFloatX4Array# = readFloatX4Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleX2Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX2# #)+readDoubleX2Array# = readDoubleX2Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatX8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX8# #)+readFloatX8Array# = readFloatX8Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleX4Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX4# #)+readDoubleX4Array# = readDoubleX4Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatX16Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX16# #)+readFloatX16Array# = readFloatX16Array#++-- | Read a vector from specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleX8Array# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX8# #)+readDoubleX8Array# = readDoubleX8Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8X16Array# :: MutableByteArray# s -> Int# -> Int8X16# -> State# s -> State# s+writeInt8X16Array# = writeInt8X16Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16X8Array# :: MutableByteArray# s -> Int# -> Int16X8# -> State# s -> State# s+writeInt16X8Array# = writeInt16X8Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32X4Array# :: MutableByteArray# s -> Int# -> Int32X4# -> State# s -> State# s+writeInt32X4Array# = writeInt32X4Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64X2Array# :: MutableByteArray# s -> Int# -> Int64X2# -> State# s -> State# s+writeInt64X2Array# = writeInt64X2Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8X32Array# :: MutableByteArray# s -> Int# -> Int8X32# -> State# s -> State# s+writeInt8X32Array# = writeInt8X32Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16X16Array# :: MutableByteArray# s -> Int# -> Int16X16# -> State# s -> State# s+writeInt16X16Array# = writeInt16X16Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32X8Array# :: MutableByteArray# s -> Int# -> Int32X8# -> State# s -> State# s+writeInt32X8Array# = writeInt32X8Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64X4Array# :: MutableByteArray# s -> Int# -> Int64X4# -> State# s -> State# s+writeInt64X4Array# = writeInt64X4Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8X64Array# :: MutableByteArray# s -> Int# -> Int8X64# -> State# s -> State# s+writeInt8X64Array# = writeInt8X64Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16X32Array# :: MutableByteArray# s -> Int# -> Int16X32# -> State# s -> State# s+writeInt16X32Array# = writeInt16X32Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32X16Array# :: MutableByteArray# s -> Int# -> Int32X16# -> State# s -> State# s+writeInt32X16Array# = writeInt32X16Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64X8Array# :: MutableByteArray# s -> Int# -> Int64X8# -> State# s -> State# s+writeInt64X8Array# = writeInt64X8Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8X16Array# :: MutableByteArray# s -> Int# -> Word8X16# -> State# s -> State# s+writeWord8X16Array# = writeWord8X16Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16X8Array# :: MutableByteArray# s -> Int# -> Word16X8# -> State# s -> State# s+writeWord16X8Array# = writeWord16X8Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32X4Array# :: MutableByteArray# s -> Int# -> Word32X4# -> State# s -> State# s+writeWord32X4Array# = writeWord32X4Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64X2Array# :: MutableByteArray# s -> Int# -> Word64X2# -> State# s -> State# s+writeWord64X2Array# = writeWord64X2Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8X32Array# :: MutableByteArray# s -> Int# -> Word8X32# -> State# s -> State# s+writeWord8X32Array# = writeWord8X32Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16X16Array# :: MutableByteArray# s -> Int# -> Word16X16# -> State# s -> State# s+writeWord16X16Array# = writeWord16X16Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32X8Array# :: MutableByteArray# s -> Int# -> Word32X8# -> State# s -> State# s+writeWord32X8Array# = writeWord32X8Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64X4Array# :: MutableByteArray# s -> Int# -> Word64X4# -> State# s -> State# s+writeWord64X4Array# = writeWord64X4Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8X64Array# :: MutableByteArray# s -> Int# -> Word8X64# -> State# s -> State# s+writeWord8X64Array# = writeWord8X64Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16X32Array# :: MutableByteArray# s -> Int# -> Word16X32# -> State# s -> State# s+writeWord16X32Array# = writeWord16X32Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32X16Array# :: MutableByteArray# s -> Int# -> Word32X16# -> State# s -> State# s+writeWord32X16Array# = writeWord32X16Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64X8Array# :: MutableByteArray# s -> Int# -> Word64X8# -> State# s -> State# s+writeWord64X8Array# = writeWord64X8Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatX4Array# :: MutableByteArray# s -> Int# -> FloatX4# -> State# s -> State# s+writeFloatX4Array# = writeFloatX4Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleX2Array# :: MutableByteArray# s -> Int# -> DoubleX2# -> State# s -> State# s+writeDoubleX2Array# = writeDoubleX2Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatX8Array# :: MutableByteArray# s -> Int# -> FloatX8# -> State# s -> State# s+writeFloatX8Array# = writeFloatX8Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleX4Array# :: MutableByteArray# s -> Int# -> DoubleX4# -> State# s -> State# s+writeDoubleX4Array# = writeDoubleX4Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatX16Array# :: MutableByteArray# s -> Int# -> FloatX16# -> State# s -> State# s+writeFloatX16Array# = writeFloatX16Array#++-- | Write a vector to specified index of mutable array. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleX8Array# :: MutableByteArray# s -> Int# -> DoubleX8# -> State# s -> State# s+writeDoubleX8Array# = writeDoubleX8Array#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8X16OffAddr# :: Addr# -> Int# -> Int8X16#+indexInt8X16OffAddr# = indexInt8X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16X8OffAddr# :: Addr# -> Int# -> Int16X8#+indexInt16X8OffAddr# = indexInt16X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32X4OffAddr# :: Addr# -> Int# -> Int32X4#+indexInt32X4OffAddr# = indexInt32X4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64X2OffAddr# :: Addr# -> Int# -> Int64X2#+indexInt64X2OffAddr# = indexInt64X2OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8X32OffAddr# :: Addr# -> Int# -> Int8X32#+indexInt8X32OffAddr# = indexInt8X32OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16X16OffAddr# :: Addr# -> Int# -> Int16X16#+indexInt16X16OffAddr# = indexInt16X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32X8OffAddr# :: Addr# -> Int# -> Int32X8#+indexInt32X8OffAddr# = indexInt32X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64X4OffAddr# :: Addr# -> Int# -> Int64X4#+indexInt64X4OffAddr# = indexInt64X4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8X64OffAddr# :: Addr# -> Int# -> Int8X64#+indexInt8X64OffAddr# = indexInt8X64OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16X32OffAddr# :: Addr# -> Int# -> Int16X32#+indexInt16X32OffAddr# = indexInt16X32OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32X16OffAddr# :: Addr# -> Int# -> Int32X16#+indexInt32X16OffAddr# = indexInt32X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64X8OffAddr# :: Addr# -> Int# -> Int64X8#+indexInt64X8OffAddr# = indexInt64X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8X16OffAddr# :: Addr# -> Int# -> Word8X16#+indexWord8X16OffAddr# = indexWord8X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16X8OffAddr# :: Addr# -> Int# -> Word16X8#+indexWord16X8OffAddr# = indexWord16X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32X4OffAddr# :: Addr# -> Int# -> Word32X4#+indexWord32X4OffAddr# = indexWord32X4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64X2OffAddr# :: Addr# -> Int# -> Word64X2#+indexWord64X2OffAddr# = indexWord64X2OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8X32OffAddr# :: Addr# -> Int# -> Word8X32#+indexWord8X32OffAddr# = indexWord8X32OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16X16OffAddr# :: Addr# -> Int# -> Word16X16#+indexWord16X16OffAddr# = indexWord16X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32X8OffAddr# :: Addr# -> Int# -> Word32X8#+indexWord32X8OffAddr# = indexWord32X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64X4OffAddr# :: Addr# -> Int# -> Word64X4#+indexWord64X4OffAddr# = indexWord64X4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8X64OffAddr# :: Addr# -> Int# -> Word8X64#+indexWord8X64OffAddr# = indexWord8X64OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16X32OffAddr# :: Addr# -> Int# -> Word16X32#+indexWord16X32OffAddr# = indexWord16X32OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32X16OffAddr# :: Addr# -> Int# -> Word32X16#+indexWord32X16OffAddr# = indexWord32X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64X8OffAddr# :: Addr# -> Int# -> Word64X8#+indexWord64X8OffAddr# = indexWord64X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatX4OffAddr# :: Addr# -> Int# -> FloatX4#+indexFloatX4OffAddr# = indexFloatX4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleX2OffAddr# :: Addr# -> Int# -> DoubleX2#+indexDoubleX2OffAddr# = indexDoubleX2OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatX8OffAddr# :: Addr# -> Int# -> FloatX8#+indexFloatX8OffAddr# = indexFloatX8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleX4OffAddr# :: Addr# -> Int# -> DoubleX4#+indexDoubleX4OffAddr# = indexDoubleX4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatX16OffAddr# :: Addr# -> Int# -> FloatX16#+indexFloatX16OffAddr# = indexFloatX16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleX8OffAddr# :: Addr# -> Int# -> DoubleX8#+indexDoubleX8OffAddr# = indexDoubleX8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int8X16# #)+readInt8X16OffAddr# = readInt8X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int16X8# #)+readInt16X8OffAddr# = readInt16X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32X4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int32X4# #)+readInt32X4OffAddr# = readInt32X4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64X2OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int64X2# #)+readInt64X2OffAddr# = readInt64X2OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8X32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int8X32# #)+readInt8X32OffAddr# = readInt8X32OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int16X16# #)+readInt16X16OffAddr# = readInt16X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int32X8# #)+readInt32X8OffAddr# = readInt32X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64X4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int64X4# #)+readInt64X4OffAddr# = readInt64X4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8X64OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int8X64# #)+readInt8X64OffAddr# = readInt8X64OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16X32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int16X32# #)+readInt16X32OffAddr# = readInt16X32OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int32X16# #)+readInt32X16OffAddr# = readInt32X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Int64X8# #)+readInt64X8OffAddr# = readInt64X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word8X16# #)+readWord8X16OffAddr# = readWord8X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word16X8# #)+readWord16X8OffAddr# = readWord16X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32X4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word32X4# #)+readWord32X4OffAddr# = readWord32X4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64X2OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word64X2# #)+readWord64X2OffAddr# = readWord64X2OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8X32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word8X32# #)+readWord8X32OffAddr# = readWord8X32OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word16X16# #)+readWord16X16OffAddr# = readWord16X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word32X8# #)+readWord32X8OffAddr# = readWord32X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64X4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word64X4# #)+readWord64X4OffAddr# = readWord64X4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8X64OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word8X64# #)+readWord8X64OffAddr# = readWord8X64OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16X32OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word16X32# #)+readWord16X32OffAddr# = readWord16X32OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32X16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word32X16# #)+readWord32X16OffAddr# = readWord32X16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64X8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,Word64X8# #)+readWord64X8OffAddr# = readWord64X8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatX4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,FloatX4# #)+readFloatX4OffAddr# = readFloatX4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleX2OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX2# #)+readDoubleX2OffAddr# = readDoubleX2OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatX8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,FloatX8# #)+readFloatX8OffAddr# = readFloatX8OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleX4OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX4# #)+readDoubleX4OffAddr# = readDoubleX4OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatX16OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,FloatX16# #)+readFloatX16OffAddr# = readFloatX16OffAddr#++-- | Reads vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleX8OffAddr# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX8# #)+readDoubleX8OffAddr# = readDoubleX8OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8X16OffAddr# :: Addr# -> Int# -> Int8X16# -> State# s -> State# s+writeInt8X16OffAddr# = writeInt8X16OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16X8OffAddr# :: Addr# -> Int# -> Int16X8# -> State# s -> State# s+writeInt16X8OffAddr# = writeInt16X8OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32X4OffAddr# :: Addr# -> Int# -> Int32X4# -> State# s -> State# s+writeInt32X4OffAddr# = writeInt32X4OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64X2OffAddr# :: Addr# -> Int# -> Int64X2# -> State# s -> State# s+writeInt64X2OffAddr# = writeInt64X2OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8X32OffAddr# :: Addr# -> Int# -> Int8X32# -> State# s -> State# s+writeInt8X32OffAddr# = writeInt8X32OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16X16OffAddr# :: Addr# -> Int# -> Int16X16# -> State# s -> State# s+writeInt16X16OffAddr# = writeInt16X16OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32X8OffAddr# :: Addr# -> Int# -> Int32X8# -> State# s -> State# s+writeInt32X8OffAddr# = writeInt32X8OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64X4OffAddr# :: Addr# -> Int# -> Int64X4# -> State# s -> State# s+writeInt64X4OffAddr# = writeInt64X4OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8X64OffAddr# :: Addr# -> Int# -> Int8X64# -> State# s -> State# s+writeInt8X64OffAddr# = writeInt8X64OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16X32OffAddr# :: Addr# -> Int# -> Int16X32# -> State# s -> State# s+writeInt16X32OffAddr# = writeInt16X32OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32X16OffAddr# :: Addr# -> Int# -> Int32X16# -> State# s -> State# s+writeInt32X16OffAddr# = writeInt32X16OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64X8OffAddr# :: Addr# -> Int# -> Int64X8# -> State# s -> State# s+writeInt64X8OffAddr# = writeInt64X8OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8X16OffAddr# :: Addr# -> Int# -> Word8X16# -> State# s -> State# s+writeWord8X16OffAddr# = writeWord8X16OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16X8OffAddr# :: Addr# -> Int# -> Word16X8# -> State# s -> State# s+writeWord16X8OffAddr# = writeWord16X8OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32X4OffAddr# :: Addr# -> Int# -> Word32X4# -> State# s -> State# s+writeWord32X4OffAddr# = writeWord32X4OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64X2OffAddr# :: Addr# -> Int# -> Word64X2# -> State# s -> State# s+writeWord64X2OffAddr# = writeWord64X2OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8X32OffAddr# :: Addr# -> Int# -> Word8X32# -> State# s -> State# s+writeWord8X32OffAddr# = writeWord8X32OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16X16OffAddr# :: Addr# -> Int# -> Word16X16# -> State# s -> State# s+writeWord16X16OffAddr# = writeWord16X16OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32X8OffAddr# :: Addr# -> Int# -> Word32X8# -> State# s -> State# s+writeWord32X8OffAddr# = writeWord32X8OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64X4OffAddr# :: Addr# -> Int# -> Word64X4# -> State# s -> State# s+writeWord64X4OffAddr# = writeWord64X4OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8X64OffAddr# :: Addr# -> Int# -> Word8X64# -> State# s -> State# s+writeWord8X64OffAddr# = writeWord8X64OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16X32OffAddr# :: Addr# -> Int# -> Word16X32# -> State# s -> State# s+writeWord16X32OffAddr# = writeWord16X32OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32X16OffAddr# :: Addr# -> Int# -> Word32X16# -> State# s -> State# s+writeWord32X16OffAddr# = writeWord32X16OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64X8OffAddr# :: Addr# -> Int# -> Word64X8# -> State# s -> State# s+writeWord64X8OffAddr# = writeWord64X8OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatX4OffAddr# :: Addr# -> Int# -> FloatX4# -> State# s -> State# s+writeFloatX4OffAddr# = writeFloatX4OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleX2OffAddr# :: Addr# -> Int# -> DoubleX2# -> State# s -> State# s+writeDoubleX2OffAddr# = writeDoubleX2OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatX8OffAddr# :: Addr# -> Int# -> FloatX8# -> State# s -> State# s+writeFloatX8OffAddr# = writeFloatX8OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleX4OffAddr# :: Addr# -> Int# -> DoubleX4# -> State# s -> State# s+writeDoubleX4OffAddr# = writeDoubleX4OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatX16OffAddr# :: Addr# -> Int# -> FloatX16# -> State# s -> State# s+writeFloatX16OffAddr# = writeFloatX16OffAddr#++-- | Write vector; offset in bytes. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleX8OffAddr# :: Addr# -> Int# -> DoubleX8# -> State# s -> State# s+writeDoubleX8OffAddr# = writeDoubleX8OffAddr#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8ArrayAsInt8X16# :: ByteArray# -> Int# -> Int8X16#+indexInt8ArrayAsInt8X16# = indexInt8ArrayAsInt8X16#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16ArrayAsInt16X8# :: ByteArray# -> Int# -> Int16X8#+indexInt16ArrayAsInt16X8# = indexInt16ArrayAsInt16X8#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32ArrayAsInt32X4# :: ByteArray# -> Int# -> Int32X4#+indexInt32ArrayAsInt32X4# = indexInt32ArrayAsInt32X4#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64ArrayAsInt64X2# :: ByteArray# -> Int# -> Int64X2#+indexInt64ArrayAsInt64X2# = indexInt64ArrayAsInt64X2#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8ArrayAsInt8X32# :: ByteArray# -> Int# -> Int8X32#+indexInt8ArrayAsInt8X32# = indexInt8ArrayAsInt8X32#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16ArrayAsInt16X16# :: ByteArray# -> Int# -> Int16X16#+indexInt16ArrayAsInt16X16# = indexInt16ArrayAsInt16X16#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32ArrayAsInt32X8# :: ByteArray# -> Int# -> Int32X8#+indexInt32ArrayAsInt32X8# = indexInt32ArrayAsInt32X8#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64ArrayAsInt64X4# :: ByteArray# -> Int# -> Int64X4#+indexInt64ArrayAsInt64X4# = indexInt64ArrayAsInt64X4#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8ArrayAsInt8X64# :: ByteArray# -> Int# -> Int8X64#+indexInt8ArrayAsInt8X64# = indexInt8ArrayAsInt8X64#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16ArrayAsInt16X32# :: ByteArray# -> Int# -> Int16X32#+indexInt16ArrayAsInt16X32# = indexInt16ArrayAsInt16X32#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32ArrayAsInt32X16# :: ByteArray# -> Int# -> Int32X16#+indexInt32ArrayAsInt32X16# = indexInt32ArrayAsInt32X16#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64ArrayAsInt64X8# :: ByteArray# -> Int# -> Int64X8#+indexInt64ArrayAsInt64X8# = indexInt64ArrayAsInt64X8#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8ArrayAsWord8X16# :: ByteArray# -> Int# -> Word8X16#+indexWord8ArrayAsWord8X16# = indexWord8ArrayAsWord8X16#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16ArrayAsWord16X8# :: ByteArray# -> Int# -> Word16X8#+indexWord16ArrayAsWord16X8# = indexWord16ArrayAsWord16X8#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32ArrayAsWord32X4# :: ByteArray# -> Int# -> Word32X4#+indexWord32ArrayAsWord32X4# = indexWord32ArrayAsWord32X4#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64ArrayAsWord64X2# :: ByteArray# -> Int# -> Word64X2#+indexWord64ArrayAsWord64X2# = indexWord64ArrayAsWord64X2#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8ArrayAsWord8X32# :: ByteArray# -> Int# -> Word8X32#+indexWord8ArrayAsWord8X32# = indexWord8ArrayAsWord8X32#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16ArrayAsWord16X16# :: ByteArray# -> Int# -> Word16X16#+indexWord16ArrayAsWord16X16# = indexWord16ArrayAsWord16X16#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32ArrayAsWord32X8# :: ByteArray# -> Int# -> Word32X8#+indexWord32ArrayAsWord32X8# = indexWord32ArrayAsWord32X8#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64ArrayAsWord64X4# :: ByteArray# -> Int# -> Word64X4#+indexWord64ArrayAsWord64X4# = indexWord64ArrayAsWord64X4#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8ArrayAsWord8X64# :: ByteArray# -> Int# -> Word8X64#+indexWord8ArrayAsWord8X64# = indexWord8ArrayAsWord8X64#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16ArrayAsWord16X32# :: ByteArray# -> Int# -> Word16X32#+indexWord16ArrayAsWord16X32# = indexWord16ArrayAsWord16X32#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32ArrayAsWord32X16# :: ByteArray# -> Int# -> Word32X16#+indexWord32ArrayAsWord32X16# = indexWord32ArrayAsWord32X16#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64ArrayAsWord64X8# :: ByteArray# -> Int# -> Word64X8#+indexWord64ArrayAsWord64X8# = indexWord64ArrayAsWord64X8#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatArrayAsFloatX4# :: ByteArray# -> Int# -> FloatX4#+indexFloatArrayAsFloatX4# = indexFloatArrayAsFloatX4#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleArrayAsDoubleX2# :: ByteArray# -> Int# -> DoubleX2#+indexDoubleArrayAsDoubleX2# = indexDoubleArrayAsDoubleX2#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatArrayAsFloatX8# :: ByteArray# -> Int# -> FloatX8#+indexFloatArrayAsFloatX8# = indexFloatArrayAsFloatX8#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleArrayAsDoubleX4# :: ByteArray# -> Int# -> DoubleX4#+indexDoubleArrayAsDoubleX4# = indexDoubleArrayAsDoubleX4#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatArrayAsFloatX16# :: ByteArray# -> Int# -> FloatX16#+indexFloatArrayAsFloatX16# = indexFloatArrayAsFloatX16#++-- | Read a vector from specified index of immutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleArrayAsDoubleX8# :: ByteArray# -> Int# -> DoubleX8#+indexDoubleArrayAsDoubleX8# = indexDoubleArrayAsDoubleX8#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8ArrayAsInt8X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X16# #)+readInt8ArrayAsInt8X16# = readInt8ArrayAsInt8X16#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16ArrayAsInt16X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X8# #)+readInt16ArrayAsInt16X8# = readInt16ArrayAsInt16X8#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32ArrayAsInt32X4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X4# #)+readInt32ArrayAsInt32X4# = readInt32ArrayAsInt32X4#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64ArrayAsInt64X2# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X2# #)+readInt64ArrayAsInt64X2# = readInt64ArrayAsInt64X2#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8ArrayAsInt8X32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X32# #)+readInt8ArrayAsInt8X32# = readInt8ArrayAsInt8X32#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16ArrayAsInt16X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X16# #)+readInt16ArrayAsInt16X16# = readInt16ArrayAsInt16X16#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32ArrayAsInt32X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X8# #)+readInt32ArrayAsInt32X8# = readInt32ArrayAsInt32X8#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64ArrayAsInt64X4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X4# #)+readInt64ArrayAsInt64X4# = readInt64ArrayAsInt64X4#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8ArrayAsInt8X64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int8X64# #)+readInt8ArrayAsInt8X64# = readInt8ArrayAsInt8X64#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16ArrayAsInt16X32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int16X32# #)+readInt16ArrayAsInt16X32# = readInt16ArrayAsInt16X32#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32ArrayAsInt32X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int32X16# #)+readInt32ArrayAsInt32X16# = readInt32ArrayAsInt32X16#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64ArrayAsInt64X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Int64X8# #)+readInt64ArrayAsInt64X8# = readInt64ArrayAsInt64X8#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8ArrayAsWord8X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X16# #)+readWord8ArrayAsWord8X16# = readWord8ArrayAsWord8X16#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16ArrayAsWord16X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X8# #)+readWord16ArrayAsWord16X8# = readWord16ArrayAsWord16X8#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32ArrayAsWord32X4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X4# #)+readWord32ArrayAsWord32X4# = readWord32ArrayAsWord32X4#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64ArrayAsWord64X2# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X2# #)+readWord64ArrayAsWord64X2# = readWord64ArrayAsWord64X2#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8ArrayAsWord8X32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X32# #)+readWord8ArrayAsWord8X32# = readWord8ArrayAsWord8X32#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16ArrayAsWord16X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X16# #)+readWord16ArrayAsWord16X16# = readWord16ArrayAsWord16X16#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32ArrayAsWord32X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X8# #)+readWord32ArrayAsWord32X8# = readWord32ArrayAsWord32X8#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64ArrayAsWord64X4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X4# #)+readWord64ArrayAsWord64X4# = readWord64ArrayAsWord64X4#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8ArrayAsWord8X64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word8X64# #)+readWord8ArrayAsWord8X64# = readWord8ArrayAsWord8X64#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16ArrayAsWord16X32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word16X32# #)+readWord16ArrayAsWord16X32# = readWord16ArrayAsWord16X32#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32ArrayAsWord32X16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word32X16# #)+readWord32ArrayAsWord32X16# = readWord32ArrayAsWord32X16#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64ArrayAsWord64X8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,Word64X8# #)+readWord64ArrayAsWord64X8# = readWord64ArrayAsWord64X8#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatArrayAsFloatX4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX4# #)+readFloatArrayAsFloatX4# = readFloatArrayAsFloatX4#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleArrayAsDoubleX2# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX2# #)+readDoubleArrayAsDoubleX2# = readDoubleArrayAsDoubleX2#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatArrayAsFloatX8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX8# #)+readFloatArrayAsFloatX8# = readFloatArrayAsFloatX8#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleArrayAsDoubleX4# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX4# #)+readDoubleArrayAsDoubleX4# = readDoubleArrayAsDoubleX4#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatArrayAsFloatX16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,FloatX16# #)+readFloatArrayAsFloatX16# = readFloatArrayAsFloatX16#++-- | Read a vector from specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleArrayAsDoubleX8# :: MutableByteArray# s -> Int# -> State# s -> (# State# s,DoubleX8# #)+readDoubleArrayAsDoubleX8# = readDoubleArrayAsDoubleX8#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8ArrayAsInt8X16# :: MutableByteArray# s -> Int# -> Int8X16# -> State# s -> State# s+writeInt8ArrayAsInt8X16# = writeInt8ArrayAsInt8X16#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16ArrayAsInt16X8# :: MutableByteArray# s -> Int# -> Int16X8# -> State# s -> State# s+writeInt16ArrayAsInt16X8# = writeInt16ArrayAsInt16X8#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32ArrayAsInt32X4# :: MutableByteArray# s -> Int# -> Int32X4# -> State# s -> State# s+writeInt32ArrayAsInt32X4# = writeInt32ArrayAsInt32X4#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64ArrayAsInt64X2# :: MutableByteArray# s -> Int# -> Int64X2# -> State# s -> State# s+writeInt64ArrayAsInt64X2# = writeInt64ArrayAsInt64X2#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8ArrayAsInt8X32# :: MutableByteArray# s -> Int# -> Int8X32# -> State# s -> State# s+writeInt8ArrayAsInt8X32# = writeInt8ArrayAsInt8X32#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16ArrayAsInt16X16# :: MutableByteArray# s -> Int# -> Int16X16# -> State# s -> State# s+writeInt16ArrayAsInt16X16# = writeInt16ArrayAsInt16X16#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32ArrayAsInt32X8# :: MutableByteArray# s -> Int# -> Int32X8# -> State# s -> State# s+writeInt32ArrayAsInt32X8# = writeInt32ArrayAsInt32X8#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64ArrayAsInt64X4# :: MutableByteArray# s -> Int# -> Int64X4# -> State# s -> State# s+writeInt64ArrayAsInt64X4# = writeInt64ArrayAsInt64X4#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8ArrayAsInt8X64# :: MutableByteArray# s -> Int# -> Int8X64# -> State# s -> State# s+writeInt8ArrayAsInt8X64# = writeInt8ArrayAsInt8X64#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16ArrayAsInt16X32# :: MutableByteArray# s -> Int# -> Int16X32# -> State# s -> State# s+writeInt16ArrayAsInt16X32# = writeInt16ArrayAsInt16X32#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32ArrayAsInt32X16# :: MutableByteArray# s -> Int# -> Int32X16# -> State# s -> State# s+writeInt32ArrayAsInt32X16# = writeInt32ArrayAsInt32X16#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64ArrayAsInt64X8# :: MutableByteArray# s -> Int# -> Int64X8# -> State# s -> State# s+writeInt64ArrayAsInt64X8# = writeInt64ArrayAsInt64X8#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8ArrayAsWord8X16# :: MutableByteArray# s -> Int# -> Word8X16# -> State# s -> State# s+writeWord8ArrayAsWord8X16# = writeWord8ArrayAsWord8X16#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16ArrayAsWord16X8# :: MutableByteArray# s -> Int# -> Word16X8# -> State# s -> State# s+writeWord16ArrayAsWord16X8# = writeWord16ArrayAsWord16X8#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32ArrayAsWord32X4# :: MutableByteArray# s -> Int# -> Word32X4# -> State# s -> State# s+writeWord32ArrayAsWord32X4# = writeWord32ArrayAsWord32X4#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64ArrayAsWord64X2# :: MutableByteArray# s -> Int# -> Word64X2# -> State# s -> State# s+writeWord64ArrayAsWord64X2# = writeWord64ArrayAsWord64X2#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8ArrayAsWord8X32# :: MutableByteArray# s -> Int# -> Word8X32# -> State# s -> State# s+writeWord8ArrayAsWord8X32# = writeWord8ArrayAsWord8X32#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16ArrayAsWord16X16# :: MutableByteArray# s -> Int# -> Word16X16# -> State# s -> State# s+writeWord16ArrayAsWord16X16# = writeWord16ArrayAsWord16X16#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32ArrayAsWord32X8# :: MutableByteArray# s -> Int# -> Word32X8# -> State# s -> State# s+writeWord32ArrayAsWord32X8# = writeWord32ArrayAsWord32X8#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64ArrayAsWord64X4# :: MutableByteArray# s -> Int# -> Word64X4# -> State# s -> State# s+writeWord64ArrayAsWord64X4# = writeWord64ArrayAsWord64X4#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8ArrayAsWord8X64# :: MutableByteArray# s -> Int# -> Word8X64# -> State# s -> State# s+writeWord8ArrayAsWord8X64# = writeWord8ArrayAsWord8X64#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16ArrayAsWord16X32# :: MutableByteArray# s -> Int# -> Word16X32# -> State# s -> State# s+writeWord16ArrayAsWord16X32# = writeWord16ArrayAsWord16X32#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32ArrayAsWord32X16# :: MutableByteArray# s -> Int# -> Word32X16# -> State# s -> State# s+writeWord32ArrayAsWord32X16# = writeWord32ArrayAsWord32X16#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64ArrayAsWord64X8# :: MutableByteArray# s -> Int# -> Word64X8# -> State# s -> State# s+writeWord64ArrayAsWord64X8# = writeWord64ArrayAsWord64X8#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatArrayAsFloatX4# :: MutableByteArray# s -> Int# -> FloatX4# -> State# s -> State# s+writeFloatArrayAsFloatX4# = writeFloatArrayAsFloatX4#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleArrayAsDoubleX2# :: MutableByteArray# s -> Int# -> DoubleX2# -> State# s -> State# s+writeDoubleArrayAsDoubleX2# = writeDoubleArrayAsDoubleX2#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatArrayAsFloatX8# :: MutableByteArray# s -> Int# -> FloatX8# -> State# s -> State# s+writeFloatArrayAsFloatX8# = writeFloatArrayAsFloatX8#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleArrayAsDoubleX4# :: MutableByteArray# s -> Int# -> DoubleX4# -> State# s -> State# s+writeDoubleArrayAsDoubleX4# = writeDoubleArrayAsDoubleX4#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatArrayAsFloatX16# :: MutableByteArray# s -> Int# -> FloatX16# -> State# s -> State# s+writeFloatArrayAsFloatX16# = writeFloatArrayAsFloatX16#++-- | Write a vector to specified index of mutable array of scalars; offset is in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleArrayAsDoubleX8# :: MutableByteArray# s -> Int# -> DoubleX8# -> State# s -> State# s+writeDoubleArrayAsDoubleX8# = writeDoubleArrayAsDoubleX8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8OffAddrAsInt8X16# :: Addr# -> Int# -> Int8X16#+indexInt8OffAddrAsInt8X16# = indexInt8OffAddrAsInt8X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16OffAddrAsInt16X8# :: Addr# -> Int# -> Int16X8#+indexInt16OffAddrAsInt16X8# = indexInt16OffAddrAsInt16X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32OffAddrAsInt32X4# :: Addr# -> Int# -> Int32X4#+indexInt32OffAddrAsInt32X4# = indexInt32OffAddrAsInt32X4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64OffAddrAsInt64X2# :: Addr# -> Int# -> Int64X2#+indexInt64OffAddrAsInt64X2# = indexInt64OffAddrAsInt64X2#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8OffAddrAsInt8X32# :: Addr# -> Int# -> Int8X32#+indexInt8OffAddrAsInt8X32# = indexInt8OffAddrAsInt8X32#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16OffAddrAsInt16X16# :: Addr# -> Int# -> Int16X16#+indexInt16OffAddrAsInt16X16# = indexInt16OffAddrAsInt16X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32OffAddrAsInt32X8# :: Addr# -> Int# -> Int32X8#+indexInt32OffAddrAsInt32X8# = indexInt32OffAddrAsInt32X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64OffAddrAsInt64X4# :: Addr# -> Int# -> Int64X4#+indexInt64OffAddrAsInt64X4# = indexInt64OffAddrAsInt64X4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt8OffAddrAsInt8X64# :: Addr# -> Int# -> Int8X64#+indexInt8OffAddrAsInt8X64# = indexInt8OffAddrAsInt8X64#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt16OffAddrAsInt16X32# :: Addr# -> Int# -> Int16X32#+indexInt16OffAddrAsInt16X32# = indexInt16OffAddrAsInt16X32#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt32OffAddrAsInt32X16# :: Addr# -> Int# -> Int32X16#+indexInt32OffAddrAsInt32X16# = indexInt32OffAddrAsInt32X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexInt64OffAddrAsInt64X8# :: Addr# -> Int# -> Int64X8#+indexInt64OffAddrAsInt64X8# = indexInt64OffAddrAsInt64X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8OffAddrAsWord8X16# :: Addr# -> Int# -> Word8X16#+indexWord8OffAddrAsWord8X16# = indexWord8OffAddrAsWord8X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16OffAddrAsWord16X8# :: Addr# -> Int# -> Word16X8#+indexWord16OffAddrAsWord16X8# = indexWord16OffAddrAsWord16X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32OffAddrAsWord32X4# :: Addr# -> Int# -> Word32X4#+indexWord32OffAddrAsWord32X4# = indexWord32OffAddrAsWord32X4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64OffAddrAsWord64X2# :: Addr# -> Int# -> Word64X2#+indexWord64OffAddrAsWord64X2# = indexWord64OffAddrAsWord64X2#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8OffAddrAsWord8X32# :: Addr# -> Int# -> Word8X32#+indexWord8OffAddrAsWord8X32# = indexWord8OffAddrAsWord8X32#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16OffAddrAsWord16X16# :: Addr# -> Int# -> Word16X16#+indexWord16OffAddrAsWord16X16# = indexWord16OffAddrAsWord16X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32OffAddrAsWord32X8# :: Addr# -> Int# -> Word32X8#+indexWord32OffAddrAsWord32X8# = indexWord32OffAddrAsWord32X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64OffAddrAsWord64X4# :: Addr# -> Int# -> Word64X4#+indexWord64OffAddrAsWord64X4# = indexWord64OffAddrAsWord64X4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord8OffAddrAsWord8X64# :: Addr# -> Int# -> Word8X64#+indexWord8OffAddrAsWord8X64# = indexWord8OffAddrAsWord8X64#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord16OffAddrAsWord16X32# :: Addr# -> Int# -> Word16X32#+indexWord16OffAddrAsWord16X32# = indexWord16OffAddrAsWord16X32#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord32OffAddrAsWord32X16# :: Addr# -> Int# -> Word32X16#+indexWord32OffAddrAsWord32X16# = indexWord32OffAddrAsWord32X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexWord64OffAddrAsWord64X8# :: Addr# -> Int# -> Word64X8#+indexWord64OffAddrAsWord64X8# = indexWord64OffAddrAsWord64X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatOffAddrAsFloatX4# :: Addr# -> Int# -> FloatX4#+indexFloatOffAddrAsFloatX4# = indexFloatOffAddrAsFloatX4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> DoubleX2#+indexDoubleOffAddrAsDoubleX2# = indexDoubleOffAddrAsDoubleX2#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatOffAddrAsFloatX8# :: Addr# -> Int# -> FloatX8#+indexFloatOffAddrAsFloatX8# = indexFloatOffAddrAsFloatX8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> DoubleX4#+indexDoubleOffAddrAsDoubleX4# = indexDoubleOffAddrAsDoubleX4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexFloatOffAddrAsFloatX16# :: Addr# -> Int# -> FloatX16#+indexFloatOffAddrAsFloatX16# = indexFloatOffAddrAsFloatX16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+indexDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> DoubleX8#+indexDoubleOffAddrAsDoubleX8# = indexDoubleOffAddrAsDoubleX8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8OffAddrAsInt8X16# :: Addr# -> Int# -> State# s -> (# State# s,Int8X16# #)+readInt8OffAddrAsInt8X16# = readInt8OffAddrAsInt8X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16OffAddrAsInt16X8# :: Addr# -> Int# -> State# s -> (# State# s,Int16X8# #)+readInt16OffAddrAsInt16X8# = readInt16OffAddrAsInt16X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32OffAddrAsInt32X4# :: Addr# -> Int# -> State# s -> (# State# s,Int32X4# #)+readInt32OffAddrAsInt32X4# = readInt32OffAddrAsInt32X4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64OffAddrAsInt64X2# :: Addr# -> Int# -> State# s -> (# State# s,Int64X2# #)+readInt64OffAddrAsInt64X2# = readInt64OffAddrAsInt64X2#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8OffAddrAsInt8X32# :: Addr# -> Int# -> State# s -> (# State# s,Int8X32# #)+readInt8OffAddrAsInt8X32# = readInt8OffAddrAsInt8X32#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16OffAddrAsInt16X16# :: Addr# -> Int# -> State# s -> (# State# s,Int16X16# #)+readInt16OffAddrAsInt16X16# = readInt16OffAddrAsInt16X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32OffAddrAsInt32X8# :: Addr# -> Int# -> State# s -> (# State# s,Int32X8# #)+readInt32OffAddrAsInt32X8# = readInt32OffAddrAsInt32X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64OffAddrAsInt64X4# :: Addr# -> Int# -> State# s -> (# State# s,Int64X4# #)+readInt64OffAddrAsInt64X4# = readInt64OffAddrAsInt64X4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt8OffAddrAsInt8X64# :: Addr# -> Int# -> State# s -> (# State# s,Int8X64# #)+readInt8OffAddrAsInt8X64# = readInt8OffAddrAsInt8X64#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt16OffAddrAsInt16X32# :: Addr# -> Int# -> State# s -> (# State# s,Int16X32# #)+readInt16OffAddrAsInt16X32# = readInt16OffAddrAsInt16X32#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt32OffAddrAsInt32X16# :: Addr# -> Int# -> State# s -> (# State# s,Int32X16# #)+readInt32OffAddrAsInt32X16# = readInt32OffAddrAsInt32X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readInt64OffAddrAsInt64X8# :: Addr# -> Int# -> State# s -> (# State# s,Int64X8# #)+readInt64OffAddrAsInt64X8# = readInt64OffAddrAsInt64X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8OffAddrAsWord8X16# :: Addr# -> Int# -> State# s -> (# State# s,Word8X16# #)+readWord8OffAddrAsWord8X16# = readWord8OffAddrAsWord8X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16OffAddrAsWord16X8# :: Addr# -> Int# -> State# s -> (# State# s,Word16X8# #)+readWord16OffAddrAsWord16X8# = readWord16OffAddrAsWord16X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32OffAddrAsWord32X4# :: Addr# -> Int# -> State# s -> (# State# s,Word32X4# #)+readWord32OffAddrAsWord32X4# = readWord32OffAddrAsWord32X4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64OffAddrAsWord64X2# :: Addr# -> Int# -> State# s -> (# State# s,Word64X2# #)+readWord64OffAddrAsWord64X2# = readWord64OffAddrAsWord64X2#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8OffAddrAsWord8X32# :: Addr# -> Int# -> State# s -> (# State# s,Word8X32# #)+readWord8OffAddrAsWord8X32# = readWord8OffAddrAsWord8X32#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16OffAddrAsWord16X16# :: Addr# -> Int# -> State# s -> (# State# s,Word16X16# #)+readWord16OffAddrAsWord16X16# = readWord16OffAddrAsWord16X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32OffAddrAsWord32X8# :: Addr# -> Int# -> State# s -> (# State# s,Word32X8# #)+readWord32OffAddrAsWord32X8# = readWord32OffAddrAsWord32X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64OffAddrAsWord64X4# :: Addr# -> Int# -> State# s -> (# State# s,Word64X4# #)+readWord64OffAddrAsWord64X4# = readWord64OffAddrAsWord64X4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord8OffAddrAsWord8X64# :: Addr# -> Int# -> State# s -> (# State# s,Word8X64# #)+readWord8OffAddrAsWord8X64# = readWord8OffAddrAsWord8X64#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord16OffAddrAsWord16X32# :: Addr# -> Int# -> State# s -> (# State# s,Word16X32# #)+readWord16OffAddrAsWord16X32# = readWord16OffAddrAsWord16X32#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord32OffAddrAsWord32X16# :: Addr# -> Int# -> State# s -> (# State# s,Word32X16# #)+readWord32OffAddrAsWord32X16# = readWord32OffAddrAsWord32X16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readWord64OffAddrAsWord64X8# :: Addr# -> Int# -> State# s -> (# State# s,Word64X8# #)+readWord64OffAddrAsWord64X8# = readWord64OffAddrAsWord64X8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatOffAddrAsFloatX4# :: Addr# -> Int# -> State# s -> (# State# s,FloatX4# #)+readFloatOffAddrAsFloatX4# = readFloatOffAddrAsFloatX4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX2# #)+readDoubleOffAddrAsDoubleX2# = readDoubleOffAddrAsDoubleX2#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatOffAddrAsFloatX8# :: Addr# -> Int# -> State# s -> (# State# s,FloatX8# #)+readFloatOffAddrAsFloatX8# = readFloatOffAddrAsFloatX8#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX4# #)+readDoubleOffAddrAsDoubleX4# = readDoubleOffAddrAsDoubleX4#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readFloatOffAddrAsFloatX16# :: Addr# -> Int# -> State# s -> (# State# s,FloatX16# #)+readFloatOffAddrAsFloatX16# = readFloatOffAddrAsFloatX16#++-- | Reads vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+readDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> State# s -> (# State# s,DoubleX8# #)+readDoubleOffAddrAsDoubleX8# = readDoubleOffAddrAsDoubleX8#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8OffAddrAsInt8X16# :: Addr# -> Int# -> Int8X16# -> State# s -> State# s+writeInt8OffAddrAsInt8X16# = writeInt8OffAddrAsInt8X16#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16OffAddrAsInt16X8# :: Addr# -> Int# -> Int16X8# -> State# s -> State# s+writeInt16OffAddrAsInt16X8# = writeInt16OffAddrAsInt16X8#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32OffAddrAsInt32X4# :: Addr# -> Int# -> Int32X4# -> State# s -> State# s+writeInt32OffAddrAsInt32X4# = writeInt32OffAddrAsInt32X4#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64OffAddrAsInt64X2# :: Addr# -> Int# -> Int64X2# -> State# s -> State# s+writeInt64OffAddrAsInt64X2# = writeInt64OffAddrAsInt64X2#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8OffAddrAsInt8X32# :: Addr# -> Int# -> Int8X32# -> State# s -> State# s+writeInt8OffAddrAsInt8X32# = writeInt8OffAddrAsInt8X32#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16OffAddrAsInt16X16# :: Addr# -> Int# -> Int16X16# -> State# s -> State# s+writeInt16OffAddrAsInt16X16# = writeInt16OffAddrAsInt16X16#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32OffAddrAsInt32X8# :: Addr# -> Int# -> Int32X8# -> State# s -> State# s+writeInt32OffAddrAsInt32X8# = writeInt32OffAddrAsInt32X8#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64OffAddrAsInt64X4# :: Addr# -> Int# -> Int64X4# -> State# s -> State# s+writeInt64OffAddrAsInt64X4# = writeInt64OffAddrAsInt64X4#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt8OffAddrAsInt8X64# :: Addr# -> Int# -> Int8X64# -> State# s -> State# s+writeInt8OffAddrAsInt8X64# = writeInt8OffAddrAsInt8X64#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt16OffAddrAsInt16X32# :: Addr# -> Int# -> Int16X32# -> State# s -> State# s+writeInt16OffAddrAsInt16X32# = writeInt16OffAddrAsInt16X32#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt32OffAddrAsInt32X16# :: Addr# -> Int# -> Int32X16# -> State# s -> State# s+writeInt32OffAddrAsInt32X16# = writeInt32OffAddrAsInt32X16#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeInt64OffAddrAsInt64X8# :: Addr# -> Int# -> Int64X8# -> State# s -> State# s+writeInt64OffAddrAsInt64X8# = writeInt64OffAddrAsInt64X8#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8OffAddrAsWord8X16# :: Addr# -> Int# -> Word8X16# -> State# s -> State# s+writeWord8OffAddrAsWord8X16# = writeWord8OffAddrAsWord8X16#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16OffAddrAsWord16X8# :: Addr# -> Int# -> Word16X8# -> State# s -> State# s+writeWord16OffAddrAsWord16X8# = writeWord16OffAddrAsWord16X8#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32OffAddrAsWord32X4# :: Addr# -> Int# -> Word32X4# -> State# s -> State# s+writeWord32OffAddrAsWord32X4# = writeWord32OffAddrAsWord32X4#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64OffAddrAsWord64X2# :: Addr# -> Int# -> Word64X2# -> State# s -> State# s+writeWord64OffAddrAsWord64X2# = writeWord64OffAddrAsWord64X2#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8OffAddrAsWord8X32# :: Addr# -> Int# -> Word8X32# -> State# s -> State# s+writeWord8OffAddrAsWord8X32# = writeWord8OffAddrAsWord8X32#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16OffAddrAsWord16X16# :: Addr# -> Int# -> Word16X16# -> State# s -> State# s+writeWord16OffAddrAsWord16X16# = writeWord16OffAddrAsWord16X16#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32OffAddrAsWord32X8# :: Addr# -> Int# -> Word32X8# -> State# s -> State# s+writeWord32OffAddrAsWord32X8# = writeWord32OffAddrAsWord32X8#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64OffAddrAsWord64X4# :: Addr# -> Int# -> Word64X4# -> State# s -> State# s+writeWord64OffAddrAsWord64X4# = writeWord64OffAddrAsWord64X4#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord8OffAddrAsWord8X64# :: Addr# -> Int# -> Word8X64# -> State# s -> State# s+writeWord8OffAddrAsWord8X64# = writeWord8OffAddrAsWord8X64#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord16OffAddrAsWord16X32# :: Addr# -> Int# -> Word16X32# -> State# s -> State# s+writeWord16OffAddrAsWord16X32# = writeWord16OffAddrAsWord16X32#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord32OffAddrAsWord32X16# :: Addr# -> Int# -> Word32X16# -> State# s -> State# s+writeWord32OffAddrAsWord32X16# = writeWord32OffAddrAsWord32X16#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeWord64OffAddrAsWord64X8# :: Addr# -> Int# -> Word64X8# -> State# s -> State# s+writeWord64OffAddrAsWord64X8# = writeWord64OffAddrAsWord64X8#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatOffAddrAsFloatX4# :: Addr# -> Int# -> FloatX4# -> State# s -> State# s+writeFloatOffAddrAsFloatX4# = writeFloatOffAddrAsFloatX4#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleOffAddrAsDoubleX2# :: Addr# -> Int# -> DoubleX2# -> State# s -> State# s+writeDoubleOffAddrAsDoubleX2# = writeDoubleOffAddrAsDoubleX2#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatOffAddrAsFloatX8# :: Addr# -> Int# -> FloatX8# -> State# s -> State# s+writeFloatOffAddrAsFloatX8# = writeFloatOffAddrAsFloatX8#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeDoubleOffAddrAsDoubleX4# :: Addr# -> Int# -> DoubleX4# -> State# s -> State# s+writeDoubleOffAddrAsDoubleX4# = writeDoubleOffAddrAsDoubleX4#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception.+writeFloatOffAddrAsFloatX16# :: Addr# -> Int# -> FloatX16# -> State# s -> State# s+writeFloatOffAddrAsFloatX16# = writeFloatOffAddrAsFloatX16#++-- | Write vector; offset in scalar elements. +-- +-- __/Warning:/__ this is only available on LLVM and can fail with an unchecked exception. writeDoubleOffAddrAsDoubleX8# :: Addr# -> Int# -> DoubleX8# -> State# s -> State# s writeDoubleOffAddrAsDoubleX8# = writeDoubleOffAddrAsDoubleX8#
+ GHC/Prim/Ext.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE UnboxedTuples #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE GHCForeignImportPrim #-}+{-# LANGUAGE UnliftedFFITypes #-}++-- We need platform defines (tests for mingw32 below).+#include "ghcplatform.h"+#include "MachDeps.h"++-- See note [When do out-of-line primops go in primops.txt.pp]. More primops+-- there are elgible according to the description below, but cannot yet be moved+-- here because of superficial restrictions to `foreign import prim`. Hopefully+-- that is fixed soon.++-- | Extra C-- routines exposed from the RTS+--+-- Actual primops are emitted by the compiler itself. They are special bits of+-- code with backend support. The foreign functions in this module aren't actual+-- primops because the compiler doesn't care about them at all: they just are+-- extra foreign C-- calls libraries can make into the RTS.+--+-- Note that 'GHC.Prim' has the same haddock section names as this module, but+-- with descriptions. Consult that module's documentation for what each section means.+-- are described over there.+module GHC.Prim.Ext+ (+ -- 64-bit bit aliases+ INT64+ , WORD64+ -- * Delay\/wait operations+#if defined(mingw32_HOST_OS)+ , asyncRead#+ , asyncWrite#+ , asyncDoProc#+#endif+ -- * Misc+ , getThreadAllocationCounter#+ ) where++import GHC.Prim+import GHC.Types () -- Make implicit dependency known to build system++default () -- Double and Integer aren't available yet++------------------------------------------------------------------------+-- 64-bit bit aliases+------------------------------------------------------------------------++type INT64 =+#if WORD_SIZE_IN_BITS < 64+ Int64#+#else+ Int#+#endif++type WORD64 =+#if WORD_SIZE_IN_BITS < 64+ Word64#+#else+ Word#+#endif++------------------------------------------------------------------------+-- Delay/wait operations+------------------------------------------------------------------------++#if defined(mingw32_HOST_OS)++-- | Asynchronously read bytes from specified file descriptor.+foreign import prim "stg_asyncReadzh" asyncRead#+ :: Int#+ -> Int#+ -> Int#+ -> Addr#+ -> State# RealWorld+ -> (# State# RealWorld, Int#, Int# #)++-- | Asynchronously write bytes from specified file descriptor.+foreign import prim "stg_asyncWritezh" asyncWrite#+ :: Int#+ -> Int#+ -> Int#+ -> Addr#+ -> State# RealWorld+ -> (# State# RealWorld, Int#, Int# #)++-- | Asynchronously perform procedure (first arg), passing it 2nd arg.+foreign import prim "stg_asyncDoProczh" asyncDoProc#+ :: Addr#+ -> Addr#+ -> State# RealWorld+ -> (# State# RealWorld, Int#, Int# #)++#endif++------------------------------------------------------------------------+-- Misc+------------------------------------------------------------------------++-- | Retrieves the allocation counter for the current thread.+foreign import prim "stg_getThreadAllocationCounterzh" getThreadAllocationCounter#+ :: State# RealWorld+ -> (# State# RealWorld, INT64 #)
GHC/PrimopWrappers.hs view
@@ -1,8 +1,9 @@ {-# LANGUAGE MagicHash, NoImplicitPrelude, UnboxedTuples #-}+{-# OPTIONS_GHC -Wno-deprecations -O0 #-} module GHC.PrimopWrappers where import qualified GHC.Prim import GHC.Tuple ()-import GHC.Prim (Char#, Int#, Word#, Float#, Double#, State#, MutableArray#, Array#, SmallMutableArray#, SmallArray#, MutableByteArray#, ByteArray#, Addr#, StablePtr#, MutableArrayArray#, ArrayArray#, MutVar#, RealWorld, TVar#, MVar#, ThreadId#, Weak#, StableName#, Compact#, BCO#)+import GHC.Prim (Char#, Int#, Word#, Float#, Double#, Int8#, Word8#, Int16#, Word16#, State#, MutableArray#, Array#, SmallMutableArray#, SmallArray#, MutableByteArray#, ByteArray#, Addr#, StablePtr#, MutableArrayArray#, ArrayArray#, MutVar#, RealWorld, TVar#, MVar#, ThreadId#, Weak#, StableName#, Compact#, BCO#) {-# NOINLINE gtChar# #-} gtChar# :: Char# -> Char# -> Int# gtChar# a1 a2 = (GHC.Prim.gtChar#) a1 a2@@ -111,6 +112,186 @@ {-# NOINLINE uncheckedIShiftRL# #-} uncheckedIShiftRL# :: Int# -> Int# -> Int# uncheckedIShiftRL# a1 a2 = (GHC.Prim.uncheckedIShiftRL#) a1 a2+{-# NOINLINE extendInt8# #-}+extendInt8# :: Int8# -> Int#+extendInt8# a1 = (GHC.Prim.extendInt8#) a1+{-# NOINLINE narrowInt8# #-}+narrowInt8# :: Int# -> Int8#+narrowInt8# a1 = (GHC.Prim.narrowInt8#) a1+{-# NOINLINE negateInt8# #-}+negateInt8# :: Int8# -> Int8#+negateInt8# a1 = (GHC.Prim.negateInt8#) a1+{-# NOINLINE plusInt8# #-}+plusInt8# :: Int8# -> Int8# -> Int8#+plusInt8# a1 a2 = (GHC.Prim.plusInt8#) a1 a2+{-# NOINLINE subInt8# #-}+subInt8# :: Int8# -> Int8# -> Int8#+subInt8# a1 a2 = (GHC.Prim.subInt8#) a1 a2+{-# NOINLINE timesInt8# #-}+timesInt8# :: Int8# -> Int8# -> Int8#+timesInt8# a1 a2 = (GHC.Prim.timesInt8#) a1 a2+{-# NOINLINE quotInt8# #-}+quotInt8# :: Int8# -> Int8# -> Int8#+quotInt8# a1 a2 = (GHC.Prim.quotInt8#) a1 a2+{-# NOINLINE remInt8# #-}+remInt8# :: Int8# -> Int8# -> Int8#+remInt8# a1 a2 = (GHC.Prim.remInt8#) a1 a2+{-# NOINLINE quotRemInt8# #-}+quotRemInt8# :: Int8# -> Int8# -> (# Int8#,Int8# #)+quotRemInt8# a1 a2 = (GHC.Prim.quotRemInt8#) a1 a2+{-# NOINLINE eqInt8# #-}+eqInt8# :: Int8# -> Int8# -> Int#+eqInt8# a1 a2 = (GHC.Prim.eqInt8#) a1 a2+{-# NOINLINE geInt8# #-}+geInt8# :: Int8# -> Int8# -> Int#+geInt8# a1 a2 = (GHC.Prim.geInt8#) a1 a2+{-# NOINLINE gtInt8# #-}+gtInt8# :: Int8# -> Int8# -> Int#+gtInt8# a1 a2 = (GHC.Prim.gtInt8#) a1 a2+{-# NOINLINE leInt8# #-}+leInt8# :: Int8# -> Int8# -> Int#+leInt8# a1 a2 = (GHC.Prim.leInt8#) a1 a2+{-# NOINLINE ltInt8# #-}+ltInt8# :: Int8# -> Int8# -> Int#+ltInt8# a1 a2 = (GHC.Prim.ltInt8#) a1 a2+{-# NOINLINE neInt8# #-}+neInt8# :: Int8# -> Int8# -> Int#+neInt8# a1 a2 = (GHC.Prim.neInt8#) a1 a2+{-# NOINLINE extendWord8# #-}+extendWord8# :: Word8# -> Word#+extendWord8# a1 = (GHC.Prim.extendWord8#) a1+{-# NOINLINE narrowWord8# #-}+narrowWord8# :: Word# -> Word8#+narrowWord8# a1 = (GHC.Prim.narrowWord8#) a1+{-# NOINLINE notWord8# #-}+notWord8# :: Word8# -> Word8#+notWord8# a1 = (GHC.Prim.notWord8#) a1+{-# NOINLINE plusWord8# #-}+plusWord8# :: Word8# -> Word8# -> Word8#+plusWord8# a1 a2 = (GHC.Prim.plusWord8#) a1 a2+{-# NOINLINE subWord8# #-}+subWord8# :: Word8# -> Word8# -> Word8#+subWord8# a1 a2 = (GHC.Prim.subWord8#) a1 a2+{-# NOINLINE timesWord8# #-}+timesWord8# :: Word8# -> Word8# -> Word8#+timesWord8# a1 a2 = (GHC.Prim.timesWord8#) a1 a2+{-# NOINLINE quotWord8# #-}+quotWord8# :: Word8# -> Word8# -> Word8#+quotWord8# a1 a2 = (GHC.Prim.quotWord8#) a1 a2+{-# NOINLINE remWord8# #-}+remWord8# :: Word8# -> Word8# -> Word8#+remWord8# a1 a2 = (GHC.Prim.remWord8#) a1 a2+{-# NOINLINE quotRemWord8# #-}+quotRemWord8# :: Word8# -> Word8# -> (# Word8#,Word8# #)+quotRemWord8# a1 a2 = (GHC.Prim.quotRemWord8#) a1 a2+{-# NOINLINE eqWord8# #-}+eqWord8# :: Word8# -> Word8# -> Int#+eqWord8# a1 a2 = (GHC.Prim.eqWord8#) a1 a2+{-# NOINLINE geWord8# #-}+geWord8# :: Word8# -> Word8# -> Int#+geWord8# a1 a2 = (GHC.Prim.geWord8#) a1 a2+{-# NOINLINE gtWord8# #-}+gtWord8# :: Word8# -> Word8# -> Int#+gtWord8# a1 a2 = (GHC.Prim.gtWord8#) a1 a2+{-# NOINLINE leWord8# #-}+leWord8# :: Word8# -> Word8# -> Int#+leWord8# a1 a2 = (GHC.Prim.leWord8#) a1 a2+{-# NOINLINE ltWord8# #-}+ltWord8# :: Word8# -> Word8# -> Int#+ltWord8# a1 a2 = (GHC.Prim.ltWord8#) a1 a2+{-# NOINLINE neWord8# #-}+neWord8# :: Word8# -> Word8# -> Int#+neWord8# a1 a2 = (GHC.Prim.neWord8#) a1 a2+{-# NOINLINE extendInt16# #-}+extendInt16# :: Int16# -> Int#+extendInt16# a1 = (GHC.Prim.extendInt16#) a1+{-# NOINLINE narrowInt16# #-}+narrowInt16# :: Int# -> Int16#+narrowInt16# a1 = (GHC.Prim.narrowInt16#) a1+{-# NOINLINE negateInt16# #-}+negateInt16# :: Int16# -> Int16#+negateInt16# a1 = (GHC.Prim.negateInt16#) a1+{-# NOINLINE plusInt16# #-}+plusInt16# :: Int16# -> Int16# -> Int16#+plusInt16# a1 a2 = (GHC.Prim.plusInt16#) a1 a2+{-# NOINLINE subInt16# #-}+subInt16# :: Int16# -> Int16# -> Int16#+subInt16# a1 a2 = (GHC.Prim.subInt16#) a1 a2+{-# NOINLINE timesInt16# #-}+timesInt16# :: Int16# -> Int16# -> Int16#+timesInt16# a1 a2 = (GHC.Prim.timesInt16#) a1 a2+{-# NOINLINE quotInt16# #-}+quotInt16# :: Int16# -> Int16# -> Int16#+quotInt16# a1 a2 = (GHC.Prim.quotInt16#) a1 a2+{-# NOINLINE remInt16# #-}+remInt16# :: Int16# -> Int16# -> Int16#+remInt16# a1 a2 = (GHC.Prim.remInt16#) a1 a2+{-# NOINLINE quotRemInt16# #-}+quotRemInt16# :: Int16# -> Int16# -> (# Int16#,Int16# #)+quotRemInt16# a1 a2 = (GHC.Prim.quotRemInt16#) a1 a2+{-# NOINLINE eqInt16# #-}+eqInt16# :: Int16# -> Int16# -> Int#+eqInt16# a1 a2 = (GHC.Prim.eqInt16#) a1 a2+{-# NOINLINE geInt16# #-}+geInt16# :: Int16# -> Int16# -> Int#+geInt16# a1 a2 = (GHC.Prim.geInt16#) a1 a2+{-# NOINLINE gtInt16# #-}+gtInt16# :: Int16# -> Int16# -> Int#+gtInt16# a1 a2 = (GHC.Prim.gtInt16#) a1 a2+{-# NOINLINE leInt16# #-}+leInt16# :: Int16# -> Int16# -> Int#+leInt16# a1 a2 = (GHC.Prim.leInt16#) a1 a2+{-# NOINLINE ltInt16# #-}+ltInt16# :: Int16# -> Int16# -> Int#+ltInt16# a1 a2 = (GHC.Prim.ltInt16#) a1 a2+{-# NOINLINE neInt16# #-}+neInt16# :: Int16# -> Int16# -> Int#+neInt16# a1 a2 = (GHC.Prim.neInt16#) a1 a2+{-# NOINLINE extendWord16# #-}+extendWord16# :: Word16# -> Word#+extendWord16# a1 = (GHC.Prim.extendWord16#) a1+{-# NOINLINE narrowWord16# #-}+narrowWord16# :: Word# -> Word16#+narrowWord16# a1 = (GHC.Prim.narrowWord16#) a1+{-# NOINLINE notWord16# #-}+notWord16# :: Word16# -> Word16#+notWord16# a1 = (GHC.Prim.notWord16#) a1+{-# NOINLINE plusWord16# #-}+plusWord16# :: Word16# -> Word16# -> Word16#+plusWord16# a1 a2 = (GHC.Prim.plusWord16#) a1 a2+{-# NOINLINE subWord16# #-}+subWord16# :: Word16# -> Word16# -> Word16#+subWord16# a1 a2 = (GHC.Prim.subWord16#) a1 a2+{-# NOINLINE timesWord16# #-}+timesWord16# :: Word16# -> Word16# -> Word16#+timesWord16# a1 a2 = (GHC.Prim.timesWord16#) a1 a2+{-# NOINLINE quotWord16# #-}+quotWord16# :: Word16# -> Word16# -> Word16#+quotWord16# a1 a2 = (GHC.Prim.quotWord16#) a1 a2+{-# NOINLINE remWord16# #-}+remWord16# :: Word16# -> Word16# -> Word16#+remWord16# a1 a2 = (GHC.Prim.remWord16#) a1 a2+{-# NOINLINE quotRemWord16# #-}+quotRemWord16# :: Word16# -> Word16# -> (# Word16#,Word16# #)+quotRemWord16# a1 a2 = (GHC.Prim.quotRemWord16#) a1 a2+{-# NOINLINE eqWord16# #-}+eqWord16# :: Word16# -> Word16# -> Int#+eqWord16# a1 a2 = (GHC.Prim.eqWord16#) a1 a2+{-# NOINLINE geWord16# #-}+geWord16# :: Word16# -> Word16# -> Int#+geWord16# a1 a2 = (GHC.Prim.geWord16#) a1 a2+{-# NOINLINE gtWord16# #-}+gtWord16# :: Word16# -> Word16# -> Int#+gtWord16# a1 a2 = (GHC.Prim.gtWord16#) a1 a2+{-# NOINLINE leWord16# #-}+leWord16# :: Word16# -> Word16# -> Int#+leWord16# a1 a2 = (GHC.Prim.leWord16#) a1 a2+{-# NOINLINE ltWord16# #-}+ltWord16# :: Word16# -> Word16# -> Int#+ltWord16# a1 a2 = (GHC.Prim.ltWord16#) a1 a2+{-# NOINLINE neWord16# #-}+neWord16# :: Word16# -> Word16# -> Int#+neWord16# a1 a2 = (GHC.Prim.neWord16#) a1 a2 {-# NOINLINE plusWord# #-} plusWord# :: Word# -> Word# -> Word# plusWord# a1 a2 = (GHC.Prim.plusWord#) a1 a2@@ -270,6 +451,21 @@ {-# NOINLINE byteSwap# #-} byteSwap# :: Word# -> Word# byteSwap# a1 = (GHC.Prim.byteSwap#) a1+{-# NOINLINE bitReverse8# #-}+bitReverse8# :: Word# -> Word#+bitReverse8# a1 = (GHC.Prim.bitReverse8#) a1+{-# NOINLINE bitReverse16# #-}+bitReverse16# :: Word# -> Word#+bitReverse16# a1 = (GHC.Prim.bitReverse16#) a1+{-# NOINLINE bitReverse32# #-}+bitReverse32# :: Word# -> Word#+bitReverse32# a1 = (GHC.Prim.bitReverse32#) a1+{-# NOINLINE bitReverse64# #-}+bitReverse64# :: Word# -> Word#+bitReverse64# a1 = (GHC.Prim.bitReverse64#) a1+{-# NOINLINE bitReverse# #-}+bitReverse# :: Word# -> Word#+bitReverse# a1 = (GHC.Prim.bitReverse#) a1 {-# NOINLINE narrow8Int# #-} narrow8Int# :: Int# -> Int# narrow8Int# a1 = (GHC.Prim.narrow8Int#) a1@@ -333,9 +529,15 @@ {-# NOINLINE expDouble# #-} expDouble# :: Double# -> Double# expDouble# a1 = (GHC.Prim.expDouble#) a1+{-# NOINLINE expm1Double# #-}+expm1Double# :: Double# -> Double#+expm1Double# a1 = (GHC.Prim.expm1Double#) a1 {-# NOINLINE logDouble# #-} logDouble# :: Double# -> Double# logDouble# a1 = (GHC.Prim.logDouble#) a1+{-# NOINLINE log1pDouble# #-}+log1pDouble# :: Double# -> Double#+log1pDouble# a1 = (GHC.Prim.log1pDouble#) a1 {-# NOINLINE sqrtDouble# #-} sqrtDouble# :: Double# -> Double# sqrtDouble# a1 = (GHC.Prim.sqrtDouble#) a1@@ -366,6 +568,15 @@ {-# NOINLINE tanhDouble# #-} tanhDouble# :: Double# -> Double# tanhDouble# a1 = (GHC.Prim.tanhDouble#) a1+{-# NOINLINE asinhDouble# #-}+asinhDouble# :: Double# -> Double#+asinhDouble# a1 = (GHC.Prim.asinhDouble#) a1+{-# NOINLINE acoshDouble# #-}+acoshDouble# :: Double# -> Double#+acoshDouble# a1 = (GHC.Prim.acoshDouble#) a1+{-# NOINLINE atanhDouble# #-}+atanhDouble# :: Double# -> Double#+atanhDouble# a1 = (GHC.Prim.atanhDouble#) a1 {-# NOINLINE (**##) #-} (**##) :: Double# -> Double# -> Double# (**##) a1 a2 = (GHC.Prim.**##) a1 a2@@ -417,9 +628,15 @@ {-# NOINLINE expFloat# #-} expFloat# :: Float# -> Float# expFloat# a1 = (GHC.Prim.expFloat#) a1+{-# NOINLINE expm1Float# #-}+expm1Float# :: Float# -> Float#+expm1Float# a1 = (GHC.Prim.expm1Float#) a1 {-# NOINLINE logFloat# #-} logFloat# :: Float# -> Float# logFloat# a1 = (GHC.Prim.logFloat#) a1+{-# NOINLINE log1pFloat# #-}+log1pFloat# :: Float# -> Float#+log1pFloat# a1 = (GHC.Prim.log1pFloat#) a1 {-# NOINLINE sqrtFloat# #-} sqrtFloat# :: Float# -> Float# sqrtFloat# a1 = (GHC.Prim.sqrtFloat#) a1@@ -450,6 +667,15 @@ {-# NOINLINE tanhFloat# #-} tanhFloat# :: Float# -> Float# tanhFloat# a1 = (GHC.Prim.tanhFloat#) a1+{-# NOINLINE asinhFloat# #-}+asinhFloat# :: Float# -> Float#+asinhFloat# a1 = (GHC.Prim.asinhFloat#) a1+{-# NOINLINE acoshFloat# #-}+acoshFloat# :: Float# -> Float#+acoshFloat# a1 = (GHC.Prim.acoshFloat#) a1+{-# NOINLINE atanhFloat# #-}+atanhFloat# :: Float# -> Float#+atanhFloat# a1 = (GHC.Prim.atanhFloat#) a1 {-# NOINLINE powerFloat# #-} powerFloat# :: Float# -> Float# -> Float# powerFloat# a1 a2 = (GHC.Prim.powerFloat#) a1 a2@@ -513,6 +739,9 @@ {-# NOINLINE sameSmallMutableArray# #-} sameSmallMutableArray# :: SmallMutableArray# s a -> SmallMutableArray# s a -> Int# sameSmallMutableArray# a1 a2 = (GHC.Prim.sameSmallMutableArray#) a1 a2+{-# NOINLINE shrinkSmallMutableArray# #-}+shrinkSmallMutableArray# :: SmallMutableArray# s a -> Int# -> State# s -> State# s+shrinkSmallMutableArray# a1 a2 a3 = (GHC.Prim.shrinkSmallMutableArray#) a1 a2 a3 {-# NOINLINE readSmallArray# #-} readSmallArray# :: SmallMutableArray# s a -> Int# -> State# s -> (# State# s,a #) readSmallArray# a1 a2 a3 = (GHC.Prim.readSmallArray#) a1 a2 a3@@ -525,6 +754,9 @@ {-# NOINLINE sizeofSmallMutableArray# #-} sizeofSmallMutableArray# :: SmallMutableArray# s a -> Int# sizeofSmallMutableArray# a1 = (GHC.Prim.sizeofSmallMutableArray#) a1+{-# NOINLINE getSizeofSmallMutableArray# #-}+getSizeofSmallMutableArray# :: SmallMutableArray# s a -> State# s -> (# State# s,Int# #)+getSizeofSmallMutableArray# a1 a2 = (GHC.Prim.getSizeofSmallMutableArray#) a1 a2 {-# NOINLINE indexSmallArray# #-} indexSmallArray# :: SmallArray# a -> Int# -> (# a #) indexSmallArray# a1 a2 = (GHC.Prim.indexSmallArray#) a1 a2@@ -1152,9 +1384,12 @@ {-# NOINLINE sameMutVar# #-} sameMutVar# :: MutVar# s a -> MutVar# s a -> Int# sameMutVar# a1 a2 = (GHC.Prim.sameMutVar#) a1 a2-{-# NOINLINE atomicModifyMutVar# #-}-atomicModifyMutVar# :: MutVar# s a -> (a -> b) -> State# s -> (# State# s,c #)-atomicModifyMutVar# a1 a2 a3 = (GHC.Prim.atomicModifyMutVar#) a1 a2 a3+{-# NOINLINE atomicModifyMutVar2# #-}+atomicModifyMutVar2# :: MutVar# s a -> (a -> c) -> State# s -> (# State# s,a,c #)+atomicModifyMutVar2# a1 a2 a3 = (GHC.Prim.atomicModifyMutVar2#) a1 a2 a3+{-# NOINLINE atomicModifyMutVar_# #-}+atomicModifyMutVar_# :: MutVar# s a -> (a -> a) -> State# s -> (# State# s,a,a #)+atomicModifyMutVar_# a1 a2 a3 = (GHC.Prim.atomicModifyMutVar_#) a1 a2 a3 {-# NOINLINE casMutVar# #-} casMutVar# :: MutVar# s a -> a -> a -> State# s -> (# State# s,Int#,a #) casMutVar# a1 a2 a3 a4 = (GHC.Prim.casMutVar#) a1 a2 a3 a4@@ -1374,6 +1609,9 @@ {-# NOINLINE unpackClosure# #-} unpackClosure# :: a -> (# Addr#,ByteArray#,Array# b #) unpackClosure# a1 = (GHC.Prim.unpackClosure#) a1+{-# NOINLINE closureSize# #-}+closureSize# :: a -> Int#+closureSize# a1 = (GHC.Prim.closureSize#) a1 {-# NOINLINE getApStackVal# #-} getApStackVal# :: a -> Int# -> (# Int#,b #) getApStackVal# a1 a2 = (GHC.Prim.getApStackVal#) a1 a2@@ -1389,12 +1627,12 @@ {-# NOINLINE traceEvent# #-} traceEvent# :: Addr# -> State# s -> State# s traceEvent# a1 a2 = (GHC.Prim.traceEvent#) a1 a2+{-# NOINLINE traceBinaryEvent# #-}+traceBinaryEvent# :: Addr# -> Int# -> State# s -> State# s+traceBinaryEvent# a1 a2 a3 = (GHC.Prim.traceBinaryEvent#) a1 a2 a3 {-# NOINLINE traceMarker# #-} traceMarker# :: Addr# -> State# s -> State# s traceMarker# a1 a2 = (GHC.Prim.traceMarker#) a1 a2-{-# NOINLINE getThreadAllocationCounter# #-}-getThreadAllocationCounter# :: State# (RealWorld) -> (# State# (RealWorld),Int# #)-getThreadAllocationCounter# a1 = (GHC.Prim.getThreadAllocationCounter#) a1 {-# NOINLINE setThreadAllocationCounter# #-} setThreadAllocationCounter# :: Int# -> State# (RealWorld) -> State# (RealWorld) setThreadAllocationCounter# a1 a2 = (GHC.Prim.setThreadAllocationCounter#) a1 a2
GHC/Types.hs view
@@ -56,7 +56,7 @@ -- | The kind of constraints, like @Show a@ data Constraint --- | The kind of types with values. For example @Int :: Type@.+-- | The kind of types with lifted values. For example @Int :: Type@. type Type = TYPE 'LiftedRep {- *********************************************************************@@ -97,6 +97,22 @@ * * ********************************************************************* -} +-- | The builtin list type, usually written in its non-prefix form @[a]@.+--+-- ==== __Examples__+--+-- Unless the OverloadedLists extension is enabled, list literals are+-- syntatic sugar for repeated applications of @:@ and @[]@.+--+-- >>> 1:2:3:4:[] == [1,2,3,4]+-- True+--+-- Similarly, unless the OverloadedStrings extension is enabled, string+-- literals are syntactic sugar for a lists of characters.+--+-- >>> ['h','e','l','l','o'] == "hello"+-- True+-- data [] a = [] | a : [a] @@ -124,7 +140,8 @@ To convert a 'Char' to or from the corresponding 'Int' value defined by Unicode, use 'Prelude.toEnum' and 'Prelude.fromEnum' from the-'Prelude.Enum' class respectively (or equivalently 'ord' and 'chr').+'Prelude.Enum' class respectively (or equivalently 'Data.Char.ord' and+'Data.Char.chr'). -} data {-# CTYPE "HsChar" #-} Char = C# Char# @@ -164,7 +181,8 @@ at some point, directly or indirectly, from @Main.main@. 'IO' is a monad, so 'IO' actions can be combined using either the do-notation-or the '>>' and '>>=' operations from the 'Monad' class.+or the 'Prelude.>>' and 'Prelude.>>=' operations from the 'Prelude.Monad'+class. -} newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #)) type role IO representational@@ -211,6 +229,12 @@ class a ~~ b -- See also Note [The equality types story] in TysPrim +-- | Lifted, homogeneous equality. By lifted, we mean that it+-- can be bogus (deferred type error). By homogeneous, the two+-- types @a@ and @b@ must have the same kinds.+class a ~ b+ -- See also Note [The equality types story] in TysPrim+ -- | @Coercible@ is a two-parameter class that has instances for types @a@ and @b@ if -- the compiler can infer that they have the same representation. This class -- does not have regular instances; instead they are created on-the-fly during@@ -258,7 +282,7 @@ -- by Joachim Breitner, Richard A. Eisenberg, Simon Peyton Jones and Stephanie Weirich. -- -- @since 4.7.0.0-class Coercible a b+class Coercible (a :: k) (b :: k) -- See also Note [The equality types story] in TysPrim {- *********************************************************************@@ -370,13 +394,21 @@ | LiftedRep -- ^ lifted; represented by a pointer | UnliftedRep -- ^ unlifted; represented by a pointer | IntRep -- ^ signed, word-sized value- | WordRep -- ^ unsigned, word-sized value+ | Int8Rep -- ^ signed, 8-bit value+ | Int16Rep -- ^ signed, 16-bit value+ | Int32Rep -- ^ signed, 32-bit value | Int64Rep -- ^ signed, 64-bit value (on 32-bit only)+ | WordRep -- ^ unsigned, word-sized value+ | Word8Rep -- ^ unsigned, 8-bit value+ | Word16Rep -- ^ unsigned, 16-bit value+ | Word32Rep -- ^ unsigned, 32-bit value | Word64Rep -- ^ unsigned, 64-bit value (on 32-bit only) | AddrRep -- ^ A pointer, but /not/ to a Haskell value | FloatRep -- ^ a 32-bit floating point number | DoubleRep -- ^ a 64-bit floating point number +-- RuntimeRep is intimately tied to TyCon.RuntimeRep (in GHC proper). See+-- Note [RuntimeRep and PrimRep] in RepType. -- See also Note [Wiring in RuntimeRep] in TysWiredIn -- | Length of a SIMD vector type@@ -444,7 +476,9 @@ #endif -- | The representation produced by GHC for conjuring up the kind of a--- 'TypeRep'. See Note [Representing TyCon kinds: KindRep] in TcTypeable.+-- 'Data.Typeable.TypeRep'.++-- See Note [Representing TyCon kinds: KindRep] in TcTypeable. data KindRep = KindRepTyConApp TyCon [KindRep] | KindRepVar !KindBndr | KindRepApp KindRep KindRep
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
cbits/atomic.c view
@@ -1,3 +1,4 @@+#if !defined(arm_HOST_ARCH) #include "Rts.h" // Fallbacks for atomic primops on byte arrays. The builtins used@@ -142,7 +143,7 @@ // See also: // // * https://bugs.llvm.org/show_bug.cgi?id=8842-// * https://ghc.haskell.org/trac/ghc/ticket/9678+// * https://gitlab.haskell.org/ghc/ghc/issues/9678 // #define CAS_NAND(x, val) \@@ -418,3 +419,4 @@ while (!__sync_bool_compare_and_swap((StgWord64 *) x, *(StgWord64 *) x, (StgWord64) val)); #endif }+#endif
+ cbits/bitrev.c view
@@ -0,0 +1,81 @@+#include "Rts.h"++/*+Note [Bit reversal primop]+~~~~~~~~~~~~~~~~~~~~~~~~~~++There are two main ways of reversing the bit order of a word: bit twiddling+and using a lookup table.+See [this excellent](https://stackoverflow.com/questions/746171/most-efficient-algorithm-for-bit-reversal-from-msb-lsb-to-lsb-msb-in-c this)+Stack Overflow answer about bit order reversal for (much) more detail.+(Link valid as of March 2019.)++To summarize,++ * the lookup table is faster, but much more memory-heavy e.g.+ doing it for 64-bit words can take 64KB if only 16-bits are reversed at+ a time.+ * working directly with bits is slower (roughly on the same order of+ magnitude as the previous alternative), but uses much less memory as+ bit-wise operators aren't space-onerous.++The code below uses the latter option. If in the future the performance of this+primop must be improved, the information provided in this comment should be+useful in making the decision of which changes to make.++For more information on how the below bit-twiddling functions came to be, see+[this](http://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel)+page.+*/++extern StgWord hs_bitrev8(StgWord x);+StgWord+hs_bitrev8(StgWord x)+{+ x = ((x >> 1) & 0x55) | ((x & 0x55) << 1 );+ x = ((x >> 2) & 0x33) | ((x & 0x33) << 2 );+ x = ((x >> 4) & 0x0F) | ((x & 0x0F) << 4 );+ return x;+}++extern StgWord16 hs_bitrev16(StgWord16 x);+StgWord16+hs_bitrev16(StgWord16 x)+{+ x = ((x >> 1) & 0x5555) | ((x & 0x5555) << 1 );+ x = ((x >> 2) & 0x3333) | ((x & 0x3333) << 2 );+ x = ((x >> 4) & 0x0F0F) | ((x & 0x0F0F) << 4 );+ x = ((x >> 8) & 0x00FF) | ((x & 0x00FF) << 8 );+ return x;+}++extern StgWord32 hs_bitrev32(StgWord32 x);+StgWord32+hs_bitrev32(StgWord32 x)+{+ x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1 );+ x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2 );+ x = ((x >> 4) & 0x0F0F0F0F) | ((x & 0x0F0F0F0F) << 4 );+ x = ((x >> 8) & 0x00FF00FF) | ((x & 0x00FF00FF) << 8 );+ x = ( x >> 16 ) | ( x << 16 );+ return x;+}++extern StgWord64 hs_bitrev64(StgWord64 x);+StgWord64+hs_bitrev64(StgWord64 x)+{+ // swap odd and even bits+ x = ((x >> 1) & 0x5555555555555555) | ((x & 0x5555555555555555) << 1 );+ // swap consecutive pairs of bits+ x = ((x >> 2) & 0x3333333333333333) | ((x & 0x3333333333333333) << 2 );+ // swap consecutive pairs of nibbles (a nibble is 4 bits)+ x = ((x >> 4) & 0x0F0F0F0F0F0F0F0F) | ((x & 0x0F0F0F0F0F0F0F0F) << 4 );+ // swap consecutive pairs of bytes+ x = ((x >> 8) & 0x00FF00FF00FF00FF) | ((x & 0x00FF00FF00FF00FF) << 8 );+ // swap consecutive pairs of 16-bit words+ x = ((x >> 16) & 0x0000FFFF0000FFFF) | ((x & 0x0000FFFF0000FFFF) << 16);+ // swap 32-bit long pairs+ x = ( x >> 32 ) | ( x << 32 );+ return x;+}
changelog.md view
@@ -1,15 +1,86 @@-## 0.5.3 *August 2018*+## 0.6.1 +- Shipped with GHC 8.10.1++- Add primop for shrinking `SmallMutableArray#`+ to `GHC.Prim`:++ shrinkSmallMutableArray# :: SmallMutableArray# s a -> Int# -> State# s -> State# s++ Note that `resizeSmallMutableArray#` is not included as+ as primitive. It has been implemented in library space in+ `GHC.Exts`. See the release notes of `base`.++- Added to `GHC.Prim`:++ closureSize# :: a -> Int#++- Added to `GHC.Prim`:++ bitReverse# :: Word# -> Word#+ bitReverse8# :: Word# -> Word#+ bitReverse16# :: Word# -> Word#+ bitReverse32# :: Word# -> Word#+ bitReverse64# :: Word# -> Word#++ `bitReverse#` is a primop that, for a `Word` of 8, 16, 32 or 64 bits,+ reverses the order of its bits e.g. `0b110001` becomes `0b100011`.+ These primitives use optimized machine instructions when available.++## 0.6.0++- Shipped with GHC 8.8.1++- Added to `GHC.Prim`:++ traceBinaryEvent# :: Addr# -> Int# -> State# s -> State# s++## 0.5.3+ - Shipped with GHC 8.6.1 - Added to `GHC.Prim`:+ addWordC# :: Word# -> Word# -> (# Word#, Int# #) - `unpackClosure#` can now unpack any valid Haskell closure. Previously it returned empty pointer and non-pointer arrays for thunks. -## 0.5.2.0 *March 2018*+- Add unaligned bytearray access primops (#4442)++ readWord8ArrayAsChar# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Char# #)+ readWord8ArrayAsAddr# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Addr# #)+ readWord8ArrayAsFloat# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Float# #)+ readWord8ArrayAsDouble# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Double# #)+ readWord8ArrayAsStablePtr# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, StablePtr# #)+ readWord8ArrayAsInt16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int16# #)+ readWord8ArrayAsInt32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int32# #)+ readWord8ArrayAsInt64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int64# #)+ readWord8ArrayAsInt# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Int# #)++ readWord8ArrayAsWord16# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word16# #)+ readWord8ArrayAsWord32# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word32# #)+ readWord8ArrayAsWord64# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word64# #)+ readWord8ArrayAsWord# :: MutableByteArray# s -> Int# -> State# s -> (# State# s, Word# #)++ writeWord8ArrayAsChar# :: MutableByteArray# s -> Int# -> Char# -> State# s -> State# s+ writeWord8ArrayAsAddr# :: MutableByteArray# s -> Int# -> Addr# -> State# s -> State# s+ writeWord8ArrayAsFloat# :: MutableByteArray# s -> Int# -> Float# -> State# s -> State# s+ writeWord8ArrayAsDouble# :: MutableByteArray# s -> Int# -> Double# -> State# s -> State# s+ writeWord8ArrayAsStablePtr# :: MutableByteArray# s -> Int# -> StablePtr# -> State# s -> State# s++ writeWord8ArrayAsInt16# :: MutableByteArray# s -> Int# -> Int16# -> State# s -> State# s+ writeWord8ArrayAsInt32# :: MutableByteArray# s -> Int# -> Int32# -> State# s -> State# s+ writeWord8ArrayAsInt64# :: MutableByteArray# s -> Int# -> Int64# -> State# s -> State# s+ writeWord8ArrayAsInt# :: MutableByteArray# s -> Int# -> Int# -> State# s -> State# s++ writeWord8ArrayAsWord16# :: MutableByteArray# s -> Int# -> Word16# -> State# s -> State# s+ writeWord8ArrayAsWord32# :: MutableByteArray# s -> Int# -> Word32# -> State# s -> State# s+ writeWord8ArrayAsWord64# :: MutableByteArray# s -> Int# -> Word64# -> State# s -> State# s+ writeWord8ArrayAsWord# :: MutableByteArray# s -> Int# -> Word# -> State# s -> State# s++## 0.5.2.0 - Shipped with GHC 8.4.1
ghc-prim.cabal view
@@ -1,11 +1,13 @@ cabal-version: 2.2 name: ghc-prim-version: 0.5.3+version: 0.6.1++-- NOTE: Don't forget to update ./changelog.md license: BSD-3-Clause license-file: LICENSE category: GHC maintainer: libraries@haskell.org-bug-reports: http://ghc.haskell.org/trac/ghc/newticket?component=libraries%20%28other%29&keywords=ghc-prim+bug-reports: https://gitlab.haskell.org/ghc/ghc/issues/new synopsis: GHC primitives build-type: Simple description:@@ -15,7 +17,7 @@ source-repository head type: git- location: http://git.haskell.org/ghc.git+ location: https://gitlab.haskell.org/ghc/ghc.git subdir: libraries/ghc-prim Library@@ -41,10 +43,11 @@ GHC.Debug GHC.IntWord64 GHC.Magic+ GHC.Prim+ GHC.Prim.Ext GHC.PrimopWrappers GHC.Tuple GHC.Types- GHC.Prim virtual-modules: GHC.Prim@@ -66,6 +69,7 @@ c-sources: cbits/atomic.c cbits/bswap.c+ cbits/bitrev.c cbits/clz.c cbits/ctz.c cbits/debug.c