ghc-prim 0.6.1 → 0.7.0
raw patch · 13 files changed
+721/−8738 lines, 13 filesbuild-type:Customsetup-changednew-uploaderPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- GHC.Prim: data BCO#
- GHC.Tuple: Unit :: a -> Unit a
- GHC.Tuple: data Unit a
+ GHC.CString: cstringLength# :: Addr# -> Int#
+ GHC.CString: unpackAppendCStringUtf8# :: Addr# -> [Char] -> [Char]
+ GHC.CString: unpackFoldrCStringUtf8# :: Addr# -> (Char -> a -> a) -> a -> a
+ GHC.Prim: atomicCasAddrAddr# :: Addr# -> Addr# -> Addr# -> State# s -> (# State# s, Addr# #)
+ GHC.Prim: atomicCasWordAddr# :: Addr# -> Word# -> Word# -> State# s -> (# State# s, Word# #)
+ GHC.Prim: atomicExchangeAddrAddr# :: Addr# -> Addr# -> State# s -> (# State# s, Addr# #)
+ GHC.Prim: atomicExchangeWordAddr# :: Addr# -> Word# -> State# s -> (# State# s, Word# #)
+ GHC.Prim: data BCO
+ GHC.Prim: data FUN m a b
+ GHC.Prim: data IOPort# s a
+ GHC.Prim: data Void#
+ GHC.Prim: keepAlive# :: o -> State# RealWorld -> (State# RealWorld -> p) -> p
+ GHC.Prim: newIOPort# :: State# s -> (# State# s, IOPort# s a #)
+ GHC.Prim: readIOPort# :: IOPort# s a -> State# s -> (# State# s, a #)
+ GHC.Prim: sameIOPort# :: IOPort# s a -> IOPort# s a -> Int#
+ GHC.Prim: timesInt2# :: Int# -> Int# -> (# Int#, Int#, Int# #)
+ GHC.Prim: writeIOPort# :: IOPort# s a -> a -> State# s -> (# State# s, Int# #)
+ GHC.Prim.Exception: raiseDivZero :: a
+ GHC.Prim.Exception: raiseOverflow :: a
+ GHC.Prim.Exception: raiseUnderflow :: a
+ GHC.Prim.Panic: absentSumFieldError :: a
+ GHC.Prim.Panic: panicError :: Addr# -> a
+ GHC.PrimopWrappers: atomicCasAddrAddr# :: Addr# -> Addr# -> Addr# -> State# s -> (# State# s, Addr# #)
+ GHC.PrimopWrappers: atomicCasWordAddr# :: Addr# -> Word# -> Word# -> State# s -> (# State# s, Word# #)
+ GHC.PrimopWrappers: atomicExchangeAddrAddr# :: Addr# -> Addr# -> State# s -> (# State# s, Addr# #)
+ GHC.PrimopWrappers: atomicExchangeWordAddr# :: Addr# -> Word# -> State# s -> (# State# s, Word# #)
+ GHC.PrimopWrappers: keepAlive# :: o -> State# RealWorld -> (State# RealWorld -> p) -> p
+ GHC.PrimopWrappers: newIOPort# :: State# s -> (# State# s, IOPort# s a #)
+ GHC.PrimopWrappers: readIOPort# :: IOPort# s a -> State# s -> (# State# s, a #)
+ GHC.PrimopWrappers: sameIOPort# :: IOPort# s a -> IOPort# s a -> Int#
+ GHC.PrimopWrappers: timesInt2# :: Int# -> Int# -> (# Int#, Int#, Int# #)
+ GHC.PrimopWrappers: writeIOPort# :: IOPort# s a -> a -> State# s -> (# State# s, Int# #)
+ GHC.Tuple: Solo :: a -> Solo a
+ GHC.Tuple: data Solo a
+ GHC.Types: Many :: Multiplicity
+ GHC.Types: One :: Multiplicity
+ GHC.Types: data Multiplicity
+ GHC.Types: infix 4 ~~
- GHC.Prim: mkApUpd0# :: BCO# -> (# a #)
+ GHC.Prim: mkApUpd0# :: BCO -> (# a #)
- GHC.Prim: newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# s -> (# State# s, BCO# #)
+ GHC.Prim: newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# s -> (# State# s, BCO #)
- GHC.PrimopWrappers: mkApUpd0# :: BCO# -> (# a #)
+ GHC.PrimopWrappers: mkApUpd0# :: BCO -> (# a #)
- GHC.PrimopWrappers: newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# s -> (# State# s, BCO# #)
+ GHC.PrimopWrappers: newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# s -> (# State# s, BCO #)
- GHC.Types: type family Any :: k
+ GHC.Types: type family MultMul (a :: Multiplicity) (b :: Multiplicity) :: Multiplicity
Files
- GHC/CString.hs +245/−63
- GHC/Magic.hs +4/−4
- GHC/Prim.hs +0/−8546
- GHC/Prim/Exception.hs +52/−0
- GHC/Prim/Panic.hs +45/−0
- GHC/PrimopWrappers.hs +120/−90
- GHC/Tuple.hs +2/−2
- GHC/Types.hs +62/−25
- Setup.hs +88/−0
- cbits/atomic.c +40/−2
- cbits/ctz.c +1/−1
- changelog.md +50/−1
- ghc-prim.cabal +12/−4
GHC/CString.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE MagicHash, NoImplicitPrelude, BangPatterns #-}+{-# LANGUAGE MagicHash, NoImplicitPrelude, BangPatterns, UnliftedFFITypes #-} ----------------------------------------------------------------------------- -- | -- Module : GHC.CString@@ -16,13 +16,78 @@ ----------------------------------------------------------------------------- module GHC.CString (+ -- * Ascii variants unpackCString#, unpackAppendCString#, unpackFoldrCString#,- unpackCStringUtf8#, unpackNBytes#+ cstringLength#,++ -- * Utf variants+ unpackCStringUtf8#, unpackAppendCStringUtf8#, unpackFoldrCStringUtf8#,++ -- * Other+ unpackNBytes#, ) where -import GHC.Types+import GHC.Types hiding (One) import GHC.Prim +{-+Note [String literals in GHC]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+String literals get quite a bit of special handling in GHC. This Note+summarises the moving parts.++* Desugaring: see GHC.HsToCore.Match.Literal.dsLit, which in+ turn calls GHC.Core.Make.mkStringExprFS.++ The desugarer desugars the Haskell literal "foo" into Core+ GHC.CString.unpackCString# "foo"#+ where "foo"# is primitive string literal (of type Addr#).++ When the string cannot be encoded as a C string, we use UTF8:+ GHC.CString.unpackCStringUtf8# "foo"#++* The library module ghc-prim:GHC.CString has a bunch of functions that+ work over primitive strings, including GHC.CString.unpackCString#++* GHC.Core.Op.ConstantFold has some RULES that optimise certain string+ operations on literal strings. For example:++ + Constant folding the desugared form of ("foo" ++ "bar")+ into ("foobar")+ + Comparing strings+ + and more++* GHC.Base has a number of regular rules for String literals.++ + a rule "eqString": (==) @String = eqString+ where GHC.Base.eqString :: String -> String -> Bool++ ConstantFold has a RULE for eqString on literals:+ eqString (Lit "foo"#) (Lit "bar"#) --> False++ This allows compile time evaluation of things like "foo" == "bar"++ + A bunch of rules to promote fusion:++ "unpack" [~1] forall a . unpackCString# a = build (unpackFoldrCString# a)+ "unpack-list" [1] forall a . unpackFoldrCString# a (:) [] = unpackCString# a+ "unpack-append" forall a n . unpackFoldrCString# a (:) n = unpackAppendCString# a n++ And UTF8 variants of these rules.++* We allow primitive (unlifted) literal strings to be top-level+ bindings, breaking out usual rule. See GHC.Core+ Note [Core top-level string literals]++* TODO: There is work on a special code-gen path for top-level boxed strings+ str :: [Char]+ str = unpackCString# "foo"#+ so that they can all share a common code pointer++ There is a WIP MR on gitlab for this: !3012++-}+ ----------------------------------------------------------------------------- -- Unpacking C strings -----------------------------------------------------------------------------@@ -45,7 +110,7 @@ Moreover, inlining early may interfere with a variety of rules that are supposed to match unpackCString#, - * BuiltInRules in PrelRules.hs; e.g.+ * BuiltInRules in GHC.Core.Opt.ConstantFold; e.g. eqString (unpackCString# (Lit s1)) (unpackCString# (Lit s2) = s1 == s2 @@ -59,8 +124,8 @@ Moreover, we want to make it CONLIKE, so that: -* the rules in PrelRules will fire when the string is let-bound.- E.g. the eqString rule in PrelRules+* the rules in GHC.Core.Opt.ConstantFold will fire when the string is let-bound.+ E.g. the eqString rule in GHC.Core.Opt.ConstantFold eqString (unpackCString# (Lit s1)) (unpackCString# (Lit s2) = s1==s2 * exprIsConApp_maybe will see the string when we have@@ -70,85 +135,129 @@ All of this goes for unpackCStringUtf8# too. -} +{- Note [Inlining of unpackFoldrCString]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~++Usually the unpack-list rule turns unpackFoldrCString# into unpackCString#+It also has a BuiltInRule in PrelRules.hs:+ unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)+ = unpackFoldrCString# "foobaz" c n++We use NOINLINE [0] on the grounds that, unlike+unpackCString#, there *is* some point in inlining+unpackFoldrCString#, because we get better code for the+higher-order function call.++This can cause a code size increase but it was minimal+when looking at nofib.++This is especially important for elem which then results in an+allocation free loop.++ Note [unpackCString# iterating over addr]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~++When unpacking unpackCString# and friends repeatedly return a cons cell+containing:+* The current character we just unpacked.+* A thunk to unpack the rest of the string.++In order to minimize the size of the thunk we do not index of+the start of the string, offsetting into it, but instead increment+the addr and always use offset 0#.++This works since these two expressions will read from the same address.+* `indexCharOffAddr# a i`+* `indexCharOffAddr (a `plusAddr#` i) 0#`++This way we avoid the need for the thunks to close over both the start of+the string and the current offset, saving a word for each character unpacked.++This has the additional advantage the we can guarantee that only the+increment will happen in the loop.++-}+ unpackCString# :: Addr# -> [Char] {-# NOINLINE CONLIKE unpackCString# #-} unpackCString# addr- = unpack 0#- where- unpack nh- | isTrue# (ch `eqChar#` '\0'#) = []- | True = C# ch : unpack (nh +# 1#)+ | isTrue# (ch `eqChar#` '\0'#) = []+ | True = C# ch : unpackCString# (addr `plusAddr#` 1#) where- !ch = indexCharOffAddr# addr nh+ -- See Note [unpackCString# iterating over addr]+ !ch = indexCharOffAddr# addr 0# + unpackAppendCString# :: Addr# -> [Char] -> [Char] {-# NOINLINE unpackAppendCString# #-} -- See the NOINLINE note on unpackCString# unpackAppendCString# addr rest- = unpack 0#- where- unpack nh- | isTrue# (ch `eqChar#` '\0'#) = rest- | True = C# ch : unpack (nh +# 1#)+ | isTrue# (ch `eqChar#` '\0'#) = rest+ | True = C# ch : unpackAppendCString# (addr `plusAddr#` 1#) rest where- !ch = indexCharOffAddr# addr nh--unpackFoldrCString# :: Addr# -> (Char -> a -> a) -> a -> a---- Usually the unpack-list rule turns unpackFoldrCString# into unpackCString#---- It also has a BuiltInRule in PrelRules.hs:--- unpackFoldrCString# "foo" c (unpackFoldrCString# "baz" c n)--- = unpackFoldrCString# "foobaz" c n--{-# NOINLINE unpackFoldrCString# #-}--- At one stage I had NOINLINE [0] on the grounds that, unlike--- unpackCString#, there *is* some point in inlining--- unpackFoldrCString#, because we get better code for the--- higher-order function call. BUT there may be a lot of--- literal strings, and making a separate 'unpack' loop for--- each is highly gratuitous. See nofib/real/anna/PrettyPrint.+ -- See Note [unpackCString# iterating over addr]+ !ch = indexCharOffAddr# addr 0# -unpackFoldrCString# addr f z- = unpack 0#+-- Usually the unpack-list rule turns unpackFoldrCString# into unpackCString#.+-- See Note [String literals in GHC] for more details.+-- See [Inlining of unpackFoldrCString]+{-# NOINLINE[0] unpackFoldrCString# #-}+unpackFoldrCString# :: Addr# -> (Char -> a -> a) -> a -> a+unpackFoldrCString# str f z_init = go str z_init where- unpack nh+ go addr z | isTrue# (ch `eqChar#` '\0'#) = z- | True = C# ch `f` unpack (nh +# 1#)+ | True = C# ch `f` go (addr `plusAddr#` 1#) z where- !ch = indexCharOffAddr# addr nh+ -- See Note [unpackCString# iterating over addr]+ !ch = indexCharOffAddr# addr 0# -- There's really no point in inlining this for the same reasons as -- unpackCString. See Note [Inlining unpackCString#] above for details. unpackCStringUtf8# :: Addr# -> [Char] {-# NOINLINE CONLIKE unpackCStringUtf8# #-} unpackCStringUtf8# addr- = unpack 0#+ | isTrue# (ch `eqChar#` '\0'# ) = []+ | True =+ let !byte_count = getByteCount ch+ !utf_ch = unpackUtf8Char# byte_count ch addr+ !addr' = addr `plusBytes` byte_count+ in C# utf_ch : unpackCStringUtf8# addr'+ where+ -- See Note [unpackCString# iterating over addr]+ !ch = indexCharOffAddr# addr 0#+++unpackAppendCStringUtf8# :: Addr# -> [Char] -> [Char]+{-# NOINLINE unpackAppendCStringUtf8# #-}+ -- See the NOINLINE note on unpackCString#+unpackAppendCStringUtf8# addr rest+ | isTrue# (ch `eqChar#` '\0'#) = rest+ | True =+ let !byte_count = getByteCount ch+ !utf_ch = unpackUtf8Char# byte_count ch addr+ !addr' = (addr `plusBytes` byte_count)+ in C# utf_ch : unpackAppendCStringUtf8# addr' rest+ where+ -- See Note [unpackCString# iterating over addr]+ !ch = indexCharOffAddr# addr 0#++-- See Note [Inlining of unpackFoldrCString]+{-# NOINLINE[0] unpackFoldrCStringUtf8# #-}+unpackFoldrCStringUtf8# :: Addr# -> (Char -> a -> a) -> a -> a+unpackFoldrCStringUtf8# addr_init f z_init+ = go addr_init z_init where- -- We take care to strictly evaluate the character decoding as- -- indexCharOffAddr# is marked with the can_fail flag and- -- consequently GHC won't evaluate the expression unless it is absolutely- -- needed.- unpack nh- | isTrue# (ch `eqChar#` '\0'# ) = []- | isTrue# (ch `leChar#` '\x7F'#) = C# ch : unpack (nh +# 1#)- | isTrue# (ch `leChar#` '\xDF'#) =- let !c = C# (chr# (((ord# ch -# 0xC0#) `uncheckedIShiftL#` 6#) +#- (ord# (indexCharOffAddr# addr (nh +# 1#)) -# 0x80#)))- in c : unpack (nh +# 2#)- | isTrue# (ch `leChar#` '\xEF'#) =- let !c = C# (chr# (((ord# ch -# 0xE0#) `uncheckedIShiftL#` 12#) +#- ((ord# (indexCharOffAddr# addr (nh +# 1#)) -# 0x80#) `uncheckedIShiftL#` 6#) +#- (ord# (indexCharOffAddr# addr (nh +# 2#)) -# 0x80#)))- in c : unpack (nh +# 3#)- | True =- let !c = C# (chr# (((ord# ch -# 0xF0#) `uncheckedIShiftL#` 18#) +#- ((ord# (indexCharOffAddr# addr (nh +# 1#)) -# 0x80#) `uncheckedIShiftL#` 12#) +#- ((ord# (indexCharOffAddr# addr (nh +# 2#)) -# 0x80#) `uncheckedIShiftL#` 6#) +#- (ord# (indexCharOffAddr# addr (nh +# 3#)) -# 0x80#)))- in c : unpack (nh +# 4#)+ go addr z+ | isTrue# (ch `eqChar#` '\0'#) = z+ | True =+ let !byte_count = getByteCount ch+ !utf_ch = unpackUtf8Char# byte_count ch addr+ !addr' = (addr `plusBytes` byte_count)+ in C# utf_ch `f` go addr' z where- !ch = indexCharOffAddr# addr nh+ -- See Note [unpackCString# iterating over addr]+ !ch = indexCharOffAddr# addr 0# -- There's really no point in inlining this for the same reasons as -- unpackCString. See Note [Inlining unpackCString#] above for details.@@ -157,9 +266,82 @@ unpackNBytes# _addr 0# = [] unpackNBytes# addr len# = unpack [] (len# -# 1#) where+ unpack :: [Char] -> Int# -> [Char] unpack acc i# | isTrue# (i# <# 0#) = acc | True = case indexCharOffAddr# addr i# of ch -> unpack (C# ch : acc) (i# -# 1#) +-- The return type is not correct here. We really want CSize,+-- but that type is defined in base. However, CSize should always+-- match the size of a machine word (I hope), so this is probably+-- alright on all platforms that GHC supports.+foreign import ccall unsafe "strlen" c_strlen :: Addr# -> Int#++-- | Compute the length of a NUL-terminated string. This address+-- must refer to immutable memory. GHC includes a built-in rule for+-- constant folding when the argument is a statically-known literal.+-- That is, a core-to-core pass reduces the expression+-- @cstringLength# "hello"#@ to the constant @5#@.+cstringLength# :: Addr# -> Int#+{-# INLINE[0] cstringLength# #-}+cstringLength# = c_strlen+++------------------------------+--- UTF8 decoding utilities+------------------------------+--+-- These functions make explicit the logic that was originally+-- part of unpackCStringUtf8. Since we want the same support for ascii+-- and non-ascii a variety of functions needs the same logic. Instead+-- of C&P'in the decoding logic all over we have it here once, and then+-- force GHC to inline it.+--+-- All the overhead of the Bytes argument and calls goes away once all is+-- said and done. And what remains is readable code in Haskell land and+-- performant code in the resulting binary.++data Bytes = One | Two | Three | Four++{-# INLINE getByteCount #-}+getByteCount :: Char# -> Bytes+getByteCount ch+ | isTrue# (ch `leChar#` '\x7F'#) = One+ | isTrue# (ch `leChar#` '\xDF'#) = Two+ | isTrue# (ch `leChar#` '\xEF'#) = Three+ | True = Four++{-# INLINE plusBytes #-}+plusBytes :: Addr# -> Bytes -> Addr#+plusBytes addr bytes =+ case bytes of+ One -> addr `plusAddr#` 1#+ Two -> addr `plusAddr#` 2#+ Three -> addr `plusAddr#` 3#+ Four -> addr `plusAddr#` 4#++-- | Take the current address, read unicode char of the given size.+-- We obviously want the number of bytes, but we have to read one+-- byte to determine the number of bytes for the current codepoint+-- so we might as well reuse it and avoid a read.+--+-- Side Note: We don't dare to decode all 4 possibilities at once.+-- Reading past the end of the addr might trigger an exception.+-- For this reason we really have to check the width first and only+-- decode after.+{-# INLINE unpackUtf8Char# #-}+unpackUtf8Char# :: Bytes -> Char# -> Addr# -> Char#+unpackUtf8Char# bytes ch addr =+ case bytes of+ One -> ch+ Two -> (chr# (((ord# ch -# 0xC0#) `uncheckedIShiftL#` 6#) +#+ (ord# (indexCharOffAddr# (addr `plusAddr#` 1#) 0#) -# 0x80#)))+ Three -> (chr# (((ord# ch -# 0xE0#) `uncheckedIShiftL#` 12#) +#+ ((ord# (indexCharOffAddr# (addr `plusAddr#` 1#) 0#) -# 0x80#) `uncheckedIShiftL#` 6#) +#+ (ord# (indexCharOffAddr# (addr `plusAddr#` 2#) 0#) -# 0x80#)))+ Four -> (chr# (((ord# ch -# 0xF0#) `uncheckedIShiftL#` 18#) +#+ ((ord# (indexCharOffAddr# (addr `plusAddr#` 1#) 0#) -# 0x80#) `uncheckedIShiftL#` 12#) +#+ ((ord# (indexCharOffAddr# (addr `plusAddr#` 2#) 0#) -# 0x80#) `uncheckedIShiftL#` 6#) +#+ (ord# (indexCharOffAddr# (addr `plusAddr#` 3#) 0#) -# 0x80#)))
GHC/Magic.hs view
@@ -27,7 +27,7 @@ module GHC.Magic ( inline, noinline, lazy, oneShot, runRW# ) where ----------------------------------------------------- See Note [magicIds] in MkId.hs+-- See Note [magicIds] in GHC.Types.Id.Make -------------------------------------------------- -- Here import TYPE explicitly from GHC.Types and not from GHC.Prim. This is@@ -88,7 +88,7 @@ lazy :: a -> a lazy x = x -- Implementation note: its strictness and unfolding are over-ridden--- by the definition in MkId.hs; in both cases to nothing at all.+-- by the definition in GHC.Types.Id.Make; in both cases to nothing at all. -- That way, 'lazy' does not get inlined, and the strictness analyser -- sees it as lazy. Then the worker/wrapper phase inlines it. -- Result: happiness@@ -109,7 +109,7 @@ (a :: TYPE q) (b :: TYPE r). (a -> b) -> a -> b oneShot f = f--- Implementation note: This is wired in in MkId.hs, so the code here is+-- Implementation note: This is wired in in GHC.Types.Id.Make, 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@@ -122,7 +122,7 @@ runRW# :: forall (r :: RuntimeRep) (o :: TYPE r). (State# RealWorld -> o) -> o--- See Note [runRW magic] in CorePrep+-- See Note [runRW magic] in GHC.CoreToStg.Prep. {-# NOINLINE runRW# #-} -- runRW# is inlined manually in CorePrep #if !defined(__HADDOCK_VERSION__) runRW# m = m realWorld#
− GHC/Prim.hs
@@ -1,8546 +0,0 @@-{--This is a generated file (generated by genprimopcode).-It is not code to actually be used. Its only purpose is to be-consumed by haddock.--}---------------------------------------------------------------------------------- |--- Module : GHC.Prim--- --- Maintainer : ghc-devs@haskell.org--- Stability : internal--- Portability : non-portable (GHC extensions)------ GHC's primitive types and operations.--- Use GHC.Exts from the base package instead of importing this--- module directly.----------------------------------------------------------------------------------{-# LANGUAGE Unsafe #-}-{-# LANGUAGE MagicHash #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE UnboxedTuples #-}-{-# 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#--prefetchByteArray3# :: ByteArray# -> Int# -> State# s -> State# s-prefetchByteArray3# = prefetchByteArray3#--prefetchMutableByteArray3# :: MutableByteArray# s -> Int# -> State# s -> State# s-prefetchMutableByteArray3# = prefetchMutableByteArray3#--prefetchAddr3# :: Addr# -> Int# -> State# s -> State# s-prefetchAddr3# = prefetchAddr3#--prefetchValue3# :: a -> State# s -> State# s-prefetchValue3# = prefetchValue3#--prefetchByteArray2# :: ByteArray# -> Int# -> State# s -> State# s-prefetchByteArray2# = prefetchByteArray2#--prefetchMutableByteArray2# :: MutableByteArray# s -> Int# -> State# s -> State# s-prefetchMutableByteArray2# = prefetchMutableByteArray2#--prefetchAddr2# :: Addr# -> Int# -> State# s -> State# s-prefetchAddr2# = prefetchAddr2#--prefetchValue2# :: a -> State# s -> State# s-prefetchValue2# = prefetchValue2#--prefetchByteArray1# :: ByteArray# -> Int# -> State# s -> State# s-prefetchByteArray1# = prefetchByteArray1#--prefetchMutableByteArray1# :: MutableByteArray# s -> Int# -> State# s -> State# s-prefetchMutableByteArray1# = prefetchMutableByteArray1#--prefetchAddr1# :: Addr# -> Int# -> State# s -> State# s-prefetchAddr1# = prefetchAddr1#--prefetchValue1# :: a -> State# s -> State# s-prefetchValue1# = prefetchValue1#--prefetchByteArray0# :: ByteArray# -> Int# -> State# s -> State# s-prefetchByteArray0# = prefetchByteArray0#--prefetchMutableByteArray0# :: MutableByteArray# s -> Int# -> State# s -> State# s-prefetchMutableByteArray0# = prefetchMutableByteArray0#--prefetchAddr0# :: Addr# -> Int# -> State# s -> State# s-prefetchAddr0# = prefetchAddr0#--prefetchValue0# :: a -> State# s -> State# s-prefetchValue0# = prefetchValue0#---
+ GHC/Prim/Exception.hs view
@@ -0,0 +1,52 @@+{-# LANGUAGE GHCForeignImportPrim #-}+{-# LANGUAGE UnliftedFFITypes #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE UnboxedTuples #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE EmptyCase #-}++-- | Primitive exceptions.+module GHC.Prim.Exception+ ( raiseOverflow+ , raiseUnderflow+ , raiseDivZero+ )+where++import GHC.Prim+import GHC.Magic++default () -- Double and Integer aren't available yet++-- Note [Arithmetic exceptions]+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~+--+-- ghc-prim provides several functions to raise arithmetic exceptions+-- (raiseDivZero, raiseUnderflow, raiseOverflow) that are wired-in the RTS.+-- These exceptions are meant to be used by the package implementing arbitrary+-- precision numbers (Natural,Integer). It can't depend on `base` package to+-- raise exceptions in a normal way because it would create a dependency+-- cycle (base <-> bignum package). See #14664++foreign import prim "stg_raiseOverflowzh" raiseOverflow# :: State# RealWorld -> (# State# RealWorld, Void# #)+foreign import prim "stg_raiseUnderflowzh" raiseUnderflow# :: State# RealWorld -> (# State# RealWorld, Void# #)+foreign import prim "stg_raiseDivZZerozh" raiseDivZero# :: State# RealWorld -> (# State# RealWorld, Void# #)++-- We give a bottoming demand signature to 'raiseOverflow', 'raiseUnderflow' and+-- 'raiseDivZero' in "GHC.Core.Make". NOINLINE pragmas are necessary because if+-- we ever inlined them we would lose that information.++-- | Raise 'GHC.Exception.Type.overflowException'+raiseOverflow :: a+{-# NOINLINE raiseOverflow #-}+raiseOverflow = runRW# (\s -> case raiseOverflow# s of (# _, _ #) -> let x = x in x)++-- | Raise 'GHC.Exception.Type.underflowException'+raiseUnderflow :: a+{-# NOINLINE raiseUnderflow #-}+raiseUnderflow = runRW# (\s -> case raiseUnderflow# s of (# _, _ #) -> let x = x in x)++-- | Raise 'GHC.Exception.Type.divZeroException'+raiseDivZero :: a+{-# NOINLINE raiseDivZero #-}+raiseDivZero = runRW# (\s -> case raiseDivZero# s of (# _, _ #) -> let x = x in x)
+ GHC/Prim/Panic.hs view
@@ -0,0 +1,45 @@+{-# LANGUAGE GHCForeignImportPrim #-}+{-# LANGUAGE UnliftedFFITypes #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE UnboxedTuples #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE EmptyCase #-}++-- | Primitive panics.+module GHC.Prim.Panic+ ( absentSumFieldError+ , panicError+ )+where++import GHC.Prim+import GHC.Magic++default () -- Double and Integer aren't available yet++-- `stg_panic#` never returns but it can't just return `State# RealWorld` so we+-- indicate that it returns `Void#` too to make the compiler happy.+foreign import prim "stg_paniczh" panic# :: Addr# -> State# RealWorld -> (# State# RealWorld, Void# #)++-- | Display the CString whose address is given as an argument and exit.+panicError :: Addr# -> a+panicError errmsg =+ runRW# (\s ->+ case panic# errmsg s of+ (# _, _ #) -> -- This bottom is unreachable but we can't+ -- use an empty case lest the pattern match+ -- checker squawks.+ let x = x in x)++-- | Closure introduced by GHC.Stg.Unarise for unused unboxed sum fields.+--+-- See Note [aBSENT_SUM_FIELD_ERROR_ID] in GHC.Core.Make+absentSumFieldError :: a+absentSumFieldError = panicError "entered absent sum field!"#++-- GHC.Core.Make.aBSENT_SUM_FIELD_ERROR_ID gives absentSumFieldError a bottoming+-- demand signature. But if we ever inlined it (to a call to panicError) we'd+-- lose that information. Should not happen because absentSumFieldError is only+-- introduced in Stg.Unarise, long after inlining has stopped, but it seems+-- more direct simply to give it a NOINLINE pragma+{-# NOINLINE absentSumFieldError #-}
GHC/PrimopWrappers.hs view
@@ -3,7 +3,7 @@ module GHC.PrimopWrappers where import qualified GHC.Prim import GHC.Tuple ()-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#)+import GHC.Prim (Char#, Int#, Int8#, Word8#, Word#, Int16#, Word16#, Float#, Double#, State#, MutableArray#, Array#, SmallMutableArray#, SmallArray#, MutableByteArray#, ByteArray#, Addr#, StablePtr#, MutableArrayArray#, ArrayArray#, MutVar#, RealWorld, TVar#, MVar#, IOPort#, ThreadId#, Weak#, StableName#, Compact#, BCO) {-# NOINLINE gtChar# #-} gtChar# :: Char# -> Char# -> Int# gtChar# a1 a2 = (GHC.Prim.gtChar#) a1 a2@@ -25,93 +25,6 @@ {-# NOINLINE ord# #-} ord# :: Char# -> Int# ord# a1 = (GHC.Prim.ord#) a1-{-# NOINLINE (+#) #-}-(+#) :: Int# -> Int# -> Int#-(+#) a1 a2 = (GHC.Prim.+#) a1 a2-{-# NOINLINE (-#) #-}-(-#) :: Int# -> Int# -> Int#-(-#) a1 a2 = (GHC.Prim.-#) a1 a2-{-# NOINLINE (*#) #-}-(*#) :: Int# -> Int# -> Int#-(*#) a1 a2 = (GHC.Prim.*#) a1 a2-{-# NOINLINE mulIntMayOflo# #-}-mulIntMayOflo# :: Int# -> Int# -> Int#-mulIntMayOflo# a1 a2 = (GHC.Prim.mulIntMayOflo#) a1 a2-{-# NOINLINE quotInt# #-}-quotInt# :: Int# -> Int# -> Int#-quotInt# a1 a2 = (GHC.Prim.quotInt#) a1 a2-{-# NOINLINE remInt# #-}-remInt# :: Int# -> Int# -> Int#-remInt# a1 a2 = (GHC.Prim.remInt#) a1 a2-{-# NOINLINE quotRemInt# #-}-quotRemInt# :: Int# -> Int# -> (# Int#,Int# #)-quotRemInt# a1 a2 = (GHC.Prim.quotRemInt#) a1 a2-{-# NOINLINE andI# #-}-andI# :: Int# -> Int# -> Int#-andI# a1 a2 = (GHC.Prim.andI#) a1 a2-{-# NOINLINE orI# #-}-orI# :: Int# -> Int# -> Int#-orI# a1 a2 = (GHC.Prim.orI#) a1 a2-{-# NOINLINE xorI# #-}-xorI# :: Int# -> Int# -> Int#-xorI# a1 a2 = (GHC.Prim.xorI#) a1 a2-{-# NOINLINE notI# #-}-notI# :: Int# -> Int#-notI# a1 = (GHC.Prim.notI#) a1-{-# NOINLINE negateInt# #-}-negateInt# :: Int# -> Int#-negateInt# a1 = (GHC.Prim.negateInt#) a1-{-# NOINLINE addIntC# #-}-addIntC# :: Int# -> Int# -> (# Int#,Int# #)-addIntC# a1 a2 = (GHC.Prim.addIntC#) a1 a2-{-# NOINLINE subIntC# #-}-subIntC# :: Int# -> Int# -> (# Int#,Int# #)-subIntC# a1 a2 = (GHC.Prim.subIntC#) a1 a2-{-# NOINLINE (>#) #-}-(>#) :: Int# -> Int# -> Int#-(>#) a1 a2 = (GHC.Prim.>#) a1 a2-{-# NOINLINE (>=#) #-}-(>=#) :: Int# -> Int# -> Int#-(>=#) a1 a2 = (GHC.Prim.>=#) a1 a2-{-# NOINLINE (==#) #-}-(==#) :: Int# -> Int# -> Int#-(==#) a1 a2 = (GHC.Prim.==#) a1 a2-{-# NOINLINE (/=#) #-}-(/=#) :: Int# -> Int# -> Int#-(/=#) a1 a2 = (GHC.Prim./=#) a1 a2-{-# NOINLINE (<#) #-}-(<#) :: Int# -> Int# -> Int#-(<#) a1 a2 = (GHC.Prim.<#) a1 a2-{-# NOINLINE (<=#) #-}-(<=#) :: Int# -> Int# -> Int#-(<=#) a1 a2 = (GHC.Prim.<=#) a1 a2-{-# NOINLINE chr# #-}-chr# :: Int# -> Char#-chr# a1 = (GHC.Prim.chr#) a1-{-# NOINLINE int2Word# #-}-int2Word# :: Int# -> Word#-int2Word# a1 = (GHC.Prim.int2Word#) a1-{-# NOINLINE int2Float# #-}-int2Float# :: Int# -> Float#-int2Float# a1 = (GHC.Prim.int2Float#) a1-{-# NOINLINE int2Double# #-}-int2Double# :: Int# -> Double#-int2Double# a1 = (GHC.Prim.int2Double#) a1-{-# NOINLINE word2Float# #-}-word2Float# :: Word# -> Float#-word2Float# a1 = (GHC.Prim.word2Float#) a1-{-# NOINLINE word2Double# #-}-word2Double# :: Word# -> Double#-word2Double# a1 = (GHC.Prim.word2Double#) a1-{-# NOINLINE uncheckedIShiftL# #-}-uncheckedIShiftL# :: Int# -> Int# -> Int#-uncheckedIShiftL# a1 a2 = (GHC.Prim.uncheckedIShiftL#) a1 a2-{-# NOINLINE uncheckedIShiftRA# #-}-uncheckedIShiftRA# :: Int# -> Int# -> Int#-uncheckedIShiftRA# a1 a2 = (GHC.Prim.uncheckedIShiftRA#) a1 a2-{-# 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@@ -292,6 +205,96 @@ {-# NOINLINE neWord16# #-} neWord16# :: Word16# -> Word16# -> Int# neWord16# a1 a2 = (GHC.Prim.neWord16#) a1 a2+{-# NOINLINE (+#) #-}+(+#) :: Int# -> Int# -> Int#+(+#) a1 a2 = (GHC.Prim.+#) a1 a2+{-# NOINLINE (-#) #-}+(-#) :: Int# -> Int# -> Int#+(-#) a1 a2 = (GHC.Prim.-#) a1 a2+{-# NOINLINE (*#) #-}+(*#) :: Int# -> Int# -> Int#+(*#) a1 a2 = (GHC.Prim.*#) a1 a2+{-# NOINLINE timesInt2# #-}+timesInt2# :: Int# -> Int# -> (# Int#,Int#,Int# #)+timesInt2# a1 a2 = (GHC.Prim.timesInt2#) a1 a2+{-# NOINLINE mulIntMayOflo# #-}+mulIntMayOflo# :: Int# -> Int# -> Int#+mulIntMayOflo# a1 a2 = (GHC.Prim.mulIntMayOflo#) a1 a2+{-# NOINLINE quotInt# #-}+quotInt# :: Int# -> Int# -> Int#+quotInt# a1 a2 = (GHC.Prim.quotInt#) a1 a2+{-# NOINLINE remInt# #-}+remInt# :: Int# -> Int# -> Int#+remInt# a1 a2 = (GHC.Prim.remInt#) a1 a2+{-# NOINLINE quotRemInt# #-}+quotRemInt# :: Int# -> Int# -> (# Int#,Int# #)+quotRemInt# a1 a2 = (GHC.Prim.quotRemInt#) a1 a2+{-# NOINLINE andI# #-}+andI# :: Int# -> Int# -> Int#+andI# a1 a2 = (GHC.Prim.andI#) a1 a2+{-# NOINLINE orI# #-}+orI# :: Int# -> Int# -> Int#+orI# a1 a2 = (GHC.Prim.orI#) a1 a2+{-# NOINLINE xorI# #-}+xorI# :: Int# -> Int# -> Int#+xorI# a1 a2 = (GHC.Prim.xorI#) a1 a2+{-# NOINLINE notI# #-}+notI# :: Int# -> Int#+notI# a1 = (GHC.Prim.notI#) a1+{-# NOINLINE negateInt# #-}+negateInt# :: Int# -> Int#+negateInt# a1 = (GHC.Prim.negateInt#) a1+{-# NOINLINE addIntC# #-}+addIntC# :: Int# -> Int# -> (# Int#,Int# #)+addIntC# a1 a2 = (GHC.Prim.addIntC#) a1 a2+{-# NOINLINE subIntC# #-}+subIntC# :: Int# -> Int# -> (# Int#,Int# #)+subIntC# a1 a2 = (GHC.Prim.subIntC#) a1 a2+{-# NOINLINE (>#) #-}+(>#) :: Int# -> Int# -> Int#+(>#) a1 a2 = (GHC.Prim.>#) a1 a2+{-# NOINLINE (>=#) #-}+(>=#) :: Int# -> Int# -> Int#+(>=#) a1 a2 = (GHC.Prim.>=#) a1 a2+{-# NOINLINE (==#) #-}+(==#) :: Int# -> Int# -> Int#+(==#) a1 a2 = (GHC.Prim.==#) a1 a2+{-# NOINLINE (/=#) #-}+(/=#) :: Int# -> Int# -> Int#+(/=#) a1 a2 = (GHC.Prim./=#) a1 a2+{-# NOINLINE (<#) #-}+(<#) :: Int# -> Int# -> Int#+(<#) a1 a2 = (GHC.Prim.<#) a1 a2+{-# NOINLINE (<=#) #-}+(<=#) :: Int# -> Int# -> Int#+(<=#) a1 a2 = (GHC.Prim.<=#) a1 a2+{-# NOINLINE chr# #-}+chr# :: Int# -> Char#+chr# a1 = (GHC.Prim.chr#) a1+{-# NOINLINE int2Word# #-}+int2Word# :: Int# -> Word#+int2Word# a1 = (GHC.Prim.int2Word#) a1+{-# NOINLINE int2Float# #-}+int2Float# :: Int# -> Float#+int2Float# a1 = (GHC.Prim.int2Float#) a1+{-# NOINLINE int2Double# #-}+int2Double# :: Int# -> Double#+int2Double# a1 = (GHC.Prim.int2Double#) a1+{-# NOINLINE word2Float# #-}+word2Float# :: Word# -> Float#+word2Float# a1 = (GHC.Prim.word2Float#) a1+{-# NOINLINE word2Double# #-}+word2Double# :: Word# -> Double#+word2Double# a1 = (GHC.Prim.word2Double#) a1+{-# NOINLINE uncheckedIShiftL# #-}+uncheckedIShiftL# :: Int# -> Int# -> Int#+uncheckedIShiftL# a1 a2 = (GHC.Prim.uncheckedIShiftL#) a1 a2+{-# NOINLINE uncheckedIShiftRA# #-}+uncheckedIShiftRA# :: Int# -> Int# -> Int#+uncheckedIShiftRA# a1 a2 = (GHC.Prim.uncheckedIShiftRA#) a1 a2+{-# NOINLINE uncheckedIShiftRL# #-}+uncheckedIShiftRL# :: Int# -> Int# -> Int#+uncheckedIShiftRL# a1 a2 = (GHC.Prim.uncheckedIShiftRL#) a1 a2 {-# NOINLINE plusWord# #-} plusWord# :: Word# -> Word# -> Word# plusWord# a1 a2 = (GHC.Prim.plusWord#) a1 a2@@ -1372,6 +1375,18 @@ {-# NOINLINE writeWord64OffAddr# #-} writeWord64OffAddr# :: Addr# -> Int# -> Word# -> State# s -> State# s writeWord64OffAddr# a1 a2 a3 a4 = (GHC.Prim.writeWord64OffAddr#) a1 a2 a3 a4+{-# NOINLINE atomicExchangeAddrAddr# #-}+atomicExchangeAddrAddr# :: Addr# -> Addr# -> State# s -> (# State# s,Addr# #)+atomicExchangeAddrAddr# a1 a2 a3 = (GHC.Prim.atomicExchangeAddrAddr#) a1 a2 a3+{-# NOINLINE atomicExchangeWordAddr# #-}+atomicExchangeWordAddr# :: Addr# -> Word# -> State# s -> (# State# s,Word# #)+atomicExchangeWordAddr# a1 a2 a3 = (GHC.Prim.atomicExchangeWordAddr#) a1 a2 a3+{-# NOINLINE atomicCasAddrAddr# #-}+atomicCasAddrAddr# :: Addr# -> Addr# -> Addr# -> State# s -> (# State# s,Addr# #)+atomicCasAddrAddr# a1 a2 a3 a4 = (GHC.Prim.atomicCasAddrAddr#) a1 a2 a3 a4+{-# NOINLINE atomicCasWordAddr# #-}+atomicCasWordAddr# :: Addr# -> Word# -> Word# -> State# s -> (# State# s,Word# #)+atomicCasWordAddr# a1 a2 a3 a4 = (GHC.Prim.atomicCasWordAddr#) a1 a2 a3 a4 {-# NOINLINE newMutVar# #-} newMutVar# :: a -> State# s -> (# State# s,MutVar# s a #) newMutVar# a1 a2 = (GHC.Prim.newMutVar#) a1 a2@@ -1468,6 +1483,18 @@ {-# NOINLINE isEmptyMVar# #-} isEmptyMVar# :: MVar# s a -> State# s -> (# State# s,Int# #) isEmptyMVar# a1 a2 = (GHC.Prim.isEmptyMVar#) a1 a2+{-# NOINLINE newIOPort# #-}+newIOPort# :: State# s -> (# State# s,IOPort# s a #)+newIOPort# a1 = (GHC.Prim.newIOPort#) a1+{-# NOINLINE readIOPort# #-}+readIOPort# :: IOPort# s a -> State# s -> (# State# s,a #)+readIOPort# a1 a2 = (GHC.Prim.readIOPort#) a1 a2+{-# NOINLINE writeIOPort# #-}+writeIOPort# :: IOPort# s a -> a -> State# s -> (# State# s,Int# #)+writeIOPort# a1 a2 a3 = (GHC.Prim.writeIOPort#) a1 a2 a3+{-# NOINLINE sameIOPort# #-}+sameIOPort# :: IOPort# s a -> IOPort# s a -> Int#+sameIOPort# a1 a2 = (GHC.Prim.sameIOPort#) a1 a2 {-# NOINLINE delay# #-} delay# :: Int# -> State# s -> State# s delay# a1 a2 = (GHC.Prim.delay#) a1 a2@@ -1591,6 +1618,9 @@ {-# NOINLINE numSparks# #-} numSparks# :: State# s -> (# State# s,Int# #) numSparks# a1 = (GHC.Prim.numSparks#) a1+{-# NOINLINE keepAlive# #-}+keepAlive# :: o -> State# (RealWorld) -> (State# (RealWorld) -> p) -> p+keepAlive# a1 a2 a3 = (GHC.Prim.keepAlive#) a1 a2 a3 {-# NOINLINE dataToTag# #-} dataToTag# :: a -> Int# dataToTag# a1 = (GHC.Prim.dataToTag#) a1@@ -1601,10 +1631,10 @@ anyToAddr# :: a -> State# (RealWorld) -> (# State# (RealWorld),Addr# #) anyToAddr# a1 a2 = (GHC.Prim.anyToAddr#) a1 a2 {-# NOINLINE mkApUpd0# #-}-mkApUpd0# :: BCO# -> (# a #)+mkApUpd0# :: BCO -> (# a #) mkApUpd0# a1 = (GHC.Prim.mkApUpd0#) a1 {-# NOINLINE newBCO# #-}-newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# s -> (# State# s,BCO# #)+newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# s -> (# State# s,BCO #) newBCO# a1 a2 a3 a4 a5 a6 = (GHC.Prim.newBCO#) a1 a2 a3 a4 a5 a6 {-# NOINLINE unpackClosure# #-} unpackClosure# :: a -> (# Addr#,ByteArray#,Array# b #)
GHC/Tuple.hs view
@@ -28,8 +28,8 @@ -- The desugarer uses 1-tuples, -- but "()" is already used up for 0-tuples--- See Note [One-tuples] in TysWiredIn-data Unit a = Unit a+-- See Note [One-tuples] in GHC.Builtin.Types+data Solo a = Solo a data (a,b) = (a,b) data (a,b,c) = (a,b,c)
GHC/Types.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE MagicHash, NoImplicitPrelude, TypeFamilies, UnboxedTuples, MultiParamTypeClasses, RoleAnnotations, CPP, TypeOperators,- PolyKinds #-}+ PolyKinds, NegativeLiterals, DataKinds #-}+-- NegativeLiterals: see Note [Fixity of (->)] ----------------------------------------------------------------------------- -- | -- Module : GHC.Types@@ -40,15 +41,42 @@ -- * Runtime type representation Module(..), TrName(..), TyCon(..), TypeLitSort(..),- KindRep(..), KindBndr+ KindRep(..), KindBndr,++ -- * Multiplicity Types+ Multiplicity(..), MultMul ) where import GHC.Prim infixr 5 : + {- ********************************************************************* * *+ Functions+* *+********************************************************************* -}++infixr -1 ->+{-+Note [Fixity of (->)]+~~~~~~~~~~~~~~~~~~~~~+This declaration is important for :info (->) command (issue #10145)+1) The parser parses -> as if it had lower fixity than 0,+ so we conventionally use -1 (issue #15235).+2) Fixities outside the 0-9 range are exceptionally allowed+ for (->) (see checkPrecP in RdrHsSyn)+3) The negative fixity -1 must be parsed as a single token,+ hence this module requires NegativeLiterals.+-}++-- | The regular function type+type (->) = FUN 'Many+-- See Note [Linear Types] in Multiplicity++{- *********************************************************************+* * Kinds * * ********************************************************************* -}@@ -59,6 +87,14 @@ -- | The kind of types with lifted values. For example @Int :: Type@. type Type = TYPE 'LiftedRep +data Multiplicity = Many | One++type family MultMul (a :: Multiplicity) (b :: Multiplicity) :: Multiplicity where+ MultMul 'One x = x+ MultMul x 'One = x+ MultMul 'Many x = 'Many+ MultMul x 'Many = 'Many+ {- ********************************************************************* * * Nat and Symbol@@ -84,7 +120,7 @@ -- to @x@. -- type family Any :: k where { }--- See Note [Any types] in TysWiredIn. Also, for a bit of history on Any see+-- See Note [Any types] in GHC.Builtin.Types. Also, for a bit of history on Any see -- #10886. Note that this must be a *closed* type family: we need to ensure -- that this can't reduce to a `data` type for the results discussed in -- Note [Any types].@@ -185,15 +221,8 @@ class. -} newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #))-type role IO representational -{- The 'type role' role annotation for IO is redundant but is included-because this role is significant in the normalisation of FFI-types. Specifically, if this role were to become nominal (which would-be very strange, indeed!), changes elsewhere in GHC would be-necessary. See [FFI type roles] in TcForeign. -} - {- ********************************************************************* * * (~) and Coercible@@ -214,7 +243,7 @@ Furthermore the type of MkCoercible cannot be written in Haskell (no syntax for ~#R). -So we define them as regular data types in GHC.Types, and do magic in TysWiredIn,+So we define them as regular data types in GHC.Types, and do magic in GHC.Builtin.Types, inside GHC, to change the kind and type. -} @@ -226,15 +255,22 @@ -- about the difference between heterogeneous equality @~~@ and -- homogeneous equality @~@, this is printed as @~@ unless -- @-fprint-equality-relations@ is set.+--+-- In @0.7.0@, the fixity was set to @infix 4@ to match the fixity of 'Data.Type.Equality.:~~:'. class a ~~ b- -- See also Note [The equality types story] in TysPrim + -- See also Note [The equality types story] in GHC.Builtin.Types.Prim+ -- | 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.++-- In @0.7.0@, the fixity was set to @infix 4@ to match the fixity of 'Data.Type.Equality.:~:'. class a ~ b- -- See also Note [The equality types story] in TysPrim +infix 4 ~, ~~+ -- See also Note [The equality types story] in GHC.Builtin.Types.Prim+ -- | @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@@ -283,7 +319,7 @@ -- -- @since 4.7.0.0 class Coercible (a :: k) (b :: k)- -- See also Note [The equality types story] in TysPrim+ -- See also Note [The equality types story] in GHC.Builtin.Types.Prim {- ********************************************************************* * *@@ -409,7 +445,7 @@ -- 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+-- See also Note [Wiring in RuntimeRep] in GHC.Builtin.Types -- | Length of a SIMD vector type data VecCount = Vec2@@ -459,12 +495,12 @@ #include "MachDeps.h" data Module = Module- TrName -- Package name- TrName -- Module name+ TrName -- ^ Package name+ TrName -- ^ Module name data TrName- = TrNameS Addr# -- Static- | TrNameD [Char] -- Dynamic+ = TrNameS Addr# -- ^ Static+ | TrNameD [Char] -- ^ Dynamic -- | A de Bruijn index for a binder within a 'KindRep'. type KindBndr = Int@@ -478,7 +514,7 @@ -- | The representation produced by GHC for conjuring up the kind of a -- 'Data.Typeable.TypeRep'. --- See Note [Representing TyCon kinds: KindRep] in TcTypeable.+-- See Note [Representing TyCon kinds: KindRep] in GHC.Tc.Instance.Typeable. data KindRep = KindRepTyConApp TyCon [KindRep] | KindRepVar !KindBndr | KindRepApp KindRep KindRep@@ -491,8 +527,9 @@ | TypeLitNat -- Show instance for TyCon found in GHC.Show-data TyCon = TyCon WORD64_TY WORD64_TY -- Fingerprint- Module -- Module in which this is defined- TrName -- Type constructor name- Int# -- How many kind variables do we accept?- KindRep -- A representation of the type's kind+data TyCon = TyCon WORD64_TY -- ^ Fingerprint (high)+ WORD64_TY -- ^ Fingerprint (low)+ Module -- ^ Module in which this is defined+ TrName -- ^ Type constructor name+ Int# -- ^ How many kind variables do we accept?+ KindRep -- ^ A representation of the type's kind
+ Setup.hs view
@@ -0,0 +1,88 @@++-- We need to do some ugly hacks here because of GHC magic++module Main (main) where++import Control.Monad+import Data.List+import Data.Maybe+import Distribution.PackageDescription+import Distribution.Simple+import Distribution.Simple.LocalBuildInfo+import Distribution.Simple.Program+import Distribution.Simple.Utils+import Distribution.Text+import System.Cmd+import System.FilePath+import System.Exit+import System.Directory++main :: IO ()+main = do let hooks = simpleUserHooks {+ regHook = addPrimModule+ $ regHook simpleUserHooks,+ buildHook = build_primitive_sources+ $ buildHook simpleUserHooks,+ haddockHook = addPrimModuleForHaddock+ $ build_primitive_sources+ $ haddockHook simpleUserHooks }+ defaultMainWithHooks hooks++type Hook a = PackageDescription -> LocalBuildInfo -> UserHooks -> a -> IO ()++addPrimModule :: Hook a -> Hook a+addPrimModule f pd lbi uhs x =+ do let -- I'm not sure which one of these we actually need to change.+ -- It seems bad that there are two.+ pd' = addPrimModuleToPD pd+ lpd = addPrimModuleToPD (localPkgDescr lbi)+ lbi' = lbi { localPkgDescr = lpd }+ f pd' lbi' uhs x++addPrimModuleForHaddock :: Hook a -> Hook a+addPrimModuleForHaddock f pd lbi uhs x =+ do let pc = withPrograms lbi+ pc' = userSpecifyArgs "haddock" ["GHC/Prim.hs"] pc+ lbi' = lbi { withPrograms = pc' }+ f pd lbi' uhs x++addPrimModuleToPD :: PackageDescription -> PackageDescription+addPrimModuleToPD pd =+ case library pd of+ Just lib ->+ let ems = fromJust (simpleParse "GHC.Prim") : exposedModules lib+ lib' = lib { exposedModules = ems }+ in pd { library = Just lib' }+ Nothing ->+ error "Expected a library, but none found"++build_primitive_sources :: Hook a -> Hook a+build_primitive_sources f pd lbi uhs x+ = do when (compilerFlavor (compiler lbi) == GHC) $ do+ let genprimopcode = joinPath ["..", "..", "utils",+ "genprimopcode", "genprimopcode"]+ primops = joinPath ["..", "..", "compiler", "prelude",+ "primops.txt"]+ primhs = joinPath ["GHC", "Prim.hs"]+ primopwrappers = joinPath ["GHC", "PrimopWrappers.hs"]+ primhs_tmp = addExtension primhs "tmp"+ primopwrappers_tmp = addExtension primopwrappers "tmp"+ maybeExit $ system (genprimopcode ++ " --make-haskell-source < "+ ++ primops ++ " > " ++ primhs_tmp)+ maybeUpdateFile primhs_tmp primhs+ maybeExit $ system (genprimopcode ++ " --make-haskell-wrappers < "+ ++ primops ++ " > " ++ primopwrappers_tmp)+ maybeUpdateFile primopwrappers_tmp primopwrappers+ f pd lbi uhs x++-- Replace a file only if the new version is different from the old.+-- This prevents make from doing unnecessary work after we run 'setup makefile'+maybeUpdateFile :: FilePath -> FilePath -> IO ()+maybeUpdateFile source target = do+ r <- rawSystem "cmp" ["-s" {-quiet-}, source, target]+ case r of+ ExitSuccess -> removeFile source+ ExitFailure _ -> do exists <- doesFileExist target+ when exists $ removeFile target+ renameFile source target+
cbits/atomic.c view
@@ -318,8 +318,41 @@ } #endif +// Atomic exchange operations++extern StgWord hs_xchg8(StgWord x, StgWord val);+StgWord+hs_xchg8(StgWord x, StgWord val)+{+ return (StgWord) __atomic_exchange_n((StgWord8 *) x, (StgWord8) val, __ATOMIC_SEQ_CST);+}++extern StgWord hs_xchg16(StgWord x, StgWord val);+StgWord+hs_xchg16(StgWord x, StgWord val)+{+ return (StgWord) __atomic_exchange_n((StgWord16 *)x, (StgWord16) val, __ATOMIC_SEQ_CST);+}++extern StgWord hs_xchg32(StgWord x, StgWord val);+StgWord+hs_xchg32(StgWord x, StgWord val)+{+ return (StgWord) __atomic_exchange_n((StgWord32 *) x, (StgWord32) val, __ATOMIC_SEQ_CST);+}++#if WORD_SIZE_IN_BITS == 64+//GCC provides this even on 32bit, but StgWord is still 32 bits.+extern StgWord hs_xchg64(StgWord x, StgWord val);+StgWord+hs_xchg64(StgWord x, StgWord val)+{+ return (StgWord) __atomic_exchange_n((StgWord64 *) x, (StgWord64) val, __ATOMIC_SEQ_CST);+}+#endif+ // AtomicReadByteArrayOp_Int-// Implies a full memory barrier (see compiler/prelude/primops.txt.pp)+// Implies a full memory barrier (see compiler/GHC/Builtin/primops.txt.pp) // __ATOMIC_SEQ_CST: Full barrier in both directions (hoisting and sinking // of code) and synchronizes with acquire loads and release stores in // all threads.@@ -361,6 +394,7 @@ #endif } +#if WORD_SIZE_IN_BITS == 64 extern StgWord64 hs_atomicread64(StgWord x); StgWord64 hs_atomicread64(StgWord x)@@ -371,9 +405,10 @@ return __sync_add_and_fetch((StgWord64 *) x, 0); #endif }+#endif // AtomicWriteByteArrayOp_Int-// Implies a full memory barrier (see compiler/prelude/primops.txt.pp)+// Implies a full memory barrier (see compiler/GHC/Builtin/primops.txt.pp) // __ATOMIC_SEQ_CST: Full barrier (see hs_atomicread8 above). extern void hs_atomicwrite8(StgWord x, StgWord val);@@ -409,6 +444,7 @@ #endif } +#if WORD_SIZE_IN_BITS == 64 extern void hs_atomicwrite64(StgWord x, StgWord64 val); void hs_atomicwrite64(StgWord x, StgWord64 val)@@ -419,4 +455,6 @@ while (!__sync_bool_compare_and_swap((StgWord64 *) x, *(StgWord64 *) x, (StgWord64) val)); #endif }+#endif+ #endif
cbits/ctz.c view
@@ -32,7 +32,7 @@ hs_ctz64(StgWord64 x) { #if defined(__GNUC__) && (defined(i386_HOST_ARCH) || defined(powerpc_HOST_ARCH))- /* On Linux/i386, the 64bit `__builtin_ctzll()` instrinsic doesn't+ /* On Linux/i386, the 64bit `__builtin_ctzll()` intrinsic doesn't get inlined by GCC but rather a short `__ctzdi2` runtime function is inserted when needed into compiled object files.
changelog.md view
@@ -1,5 +1,44 @@-## 0.6.1+## 0.7.0 (*Jan 2021*) +- Shipped with GHC 9.0.1++- Add known-key `cstringLength#` to `GHC.CString`. This is just the+ C function `strlen`, but a built-in rewrite rule allows GHC to+ compute the result at compile time when the argument is known.+ +- In order to support unicode better the following functions in `GHC.CString`+ gained UTF8 counterparts:++ unpackAppendCStringUtf8# :: Addr# -> [Char] -> [Char]+ unpackFoldrCStringUtf8# :: Addr# -> (Char -> a -> a) -> a -> a++- `unpackFoldrCString*` variants can now inline in phase `[0]`.++ If the folding function is known this allows for unboxing of the+ Char argument resulting in much faster code.++- Renamed the singleton tuple `GHC.Tuple.Unit` to `GHC.Tuple.Solo`.++- Add primops for atomic exchange:++ atomicExchangeAddrAddr# :: Addr# -> Addr# -> State# s -> (# State# s, Addr# #)+ atomicExchangeWordAddr# :: Addr# -> Word# -> State# s -> (# State# s, Word# #)++- Add primops for atomic compare and swap at a given `Addr#`:++ atomicCasAddrAddr# :: Addr# -> Addr# -> Addr# -> State# s -> (# State# s, Addr# #)+ atomicCasWordAddr# :: Addr# -> Word# -> Word# -> State# s -> (# State# s, Word# #)++- Add an explicit fixity for `(~)` and `(~~)`: ++ infix 4 ~, ~~++- Introduce `keepAlive#` to replace `touch#` in controlling object lifetime without+ the soundness issues of the latter (see+ [#17760](https://gitlab.haskell.org/ghc/ghc/-/issues/17760)).++## 0.6.1 (*March 2020*)+ - Shipped with GHC 8.10.1 - Add primop for shrinking `SmallMutableArray#`@@ -26,6 +65,16 @@ `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.++- Add Int# multiplication primop:++ timesInt2# :: Int# -> Int# -> (# Int#, Int#, Int# #)++ `timesInt2#` computes the multiplication of its two parameters and returns a+ triple (isHighNeeded,high,low) where high and low are respectively the high+ and low bits of the double-word result. isHighNeeded is a cheap way to test+ if the high word is a sign-extension of the low word (isHighNeeded = 0#) or+ not (isHighNeeded = 1#). ## 0.6.0
ghc-prim.cabal view
@@ -1,7 +1,6 @@ cabal-version: 2.2 name: ghc-prim-version: 0.6.1-+version: 0.7.0 -- NOTE: Don't forget to update ./changelog.md license: BSD-3-Clause license-file: LICENSE@@ -9,7 +8,7 @@ maintainer: libraries@haskell.org bug-reports: https://gitlab.haskell.org/ghc/ghc/issues/new synopsis: GHC primitives-build-type: Simple+build-type: Custom description: This package contains the primitive types and operations supplied by GHC. @@ -20,6 +19,9 @@ location: https://gitlab.haskell.org/ghc/ghc.git subdir: libraries/ghc-prim +custom-setup+ setup-depends: base >= 4 && < 5, Cabal >= 1.23+ Library default-language: Haskell2010 other-extensions:@@ -43,8 +45,9 @@ GHC.Debug GHC.IntWord64 GHC.Magic- GHC.Prim GHC.Prim.Ext+ GHC.Prim.Panic+ GHC.Prim.Exception GHC.PrimopWrappers GHC.Tuple GHC.Types@@ -65,6 +68,11 @@ -- user32: provides access to apis to modify user components (UI etc) -- on Windows. Required because of mingw32. extra-libraries: user32, mingw32, mingwex++ if os(linux)+ -- we need libm, but for musl and other's we might need libc, as libm+ -- is just an empty shell.+ extra-libraries: c, m c-sources: cbits/atomic.c