W3cubDocs

/Haskell 8

GHC.Exts

Copyright (c) The University of Glasgow 2002
License see libraries/base/LICENSE
Maintainer cvs-ghc@haskell.org
Stability internal
Portability non-portable (GHC Extensions)
Safe Haskell Unsafe
Language Haskell2010

Description

GHC Extensions: this is the Approved Way to get at GHC-specific extensions.

Note: no other base module should import this module.

Representations of some basic types

data Int Source

A fixed-precision integer type with at least the range [-2^29 .. 2^29-1]. The exact range for a given implementation can be determined by using minBound and maxBound from the Bounded class.

Constructors

I# Int#
Instances
Bounded Int

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Int

Since: base-2.1

Instance details

Defined in GHC.Enum

Eq Int
Instance details

Defined in GHC.Classes

Methods

(==) :: Int -> Int -> Bool Source

(/=) :: Int -> Int -> Bool Source

Integral Int

Since: base-2.0.1

Instance details

Defined in GHC.Real

Methods

quot :: Int -> Int -> Int Source

rem :: Int -> Int -> Int Source

div :: Int -> Int -> Int Source

mod :: Int -> Int -> Int Source

quotRem :: Int -> Int -> (Int, Int) Source

divMod :: Int -> Int -> (Int, Int) Source

toInteger :: Int -> Integer Source

Data Int

Since: base-4.0.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Int -> c Int Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Int Source

toConstr :: Int -> Constr Source

dataTypeOf :: Int -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Int) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Int) Source

gmapT :: (forall b. Data b => b -> b) -> Int -> Int Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Int -> r Source

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Int -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Int -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Int -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Int -> m Int Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Int -> m Int Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Int -> m Int Source

Num Int

Since: base-2.1

Instance details

Defined in GHC.Num

Methods

(+) :: Int -> Int -> Int Source

(-) :: Int -> Int -> Int Source

(*) :: Int -> Int -> Int Source

negate :: Int -> Int Source

abs :: Int -> Int Source

signum :: Int -> Int Source

fromInteger :: Integer -> Int Source

Ord Int
Instance details

Defined in GHC.Classes

Methods

compare :: Int -> Int -> Ordering Source

(<) :: Int -> Int -> Bool Source

(<=) :: Int -> Int -> Bool Source

(>) :: Int -> Int -> Bool Source

(>=) :: Int -> Int -> Bool Source

max :: Int -> Int -> Int Source

min :: Int -> Int -> Int Source

Read Int

Since: base-2.1

Instance details

Defined in GHC.Read

Real Int

Since: base-2.0.1

Instance details

Defined in GHC.Real

Methods

toRational :: Int -> Rational Source

Show Int

Since: base-2.1

Instance details

Defined in GHC.Show

Methods

showsPrec :: Int -> Int -> ShowS Source

show :: Int -> String Source

showList :: [Int] -> ShowS Source

Ix Int

Since: base-2.1

Instance details

Defined in GHC.Arr

Methods

range :: (Int, Int) -> [Int] Source

index :: (Int, Int) -> Int -> Int Source

unsafeIndex :: (Int, Int) -> Int -> Int

inRange :: (Int, Int) -> Int -> Bool Source

rangeSize :: (Int, Int) -> Int Source

unsafeRangeSize :: (Int, Int) -> Int

FiniteBits Int

Since: base-4.6.0.0

Instance details

Defined in Data.Bits

Bits Int

Since: base-2.1

Instance details

Defined in Data.Bits

Storable Int

Since: base-2.1

Instance details

Defined in Foreign.Storable

Methods

sizeOf :: Int -> Int Source

alignment :: Int -> Int Source

peekElemOff :: Ptr Int -> Int -> IO Int Source

pokeElemOff :: Ptr Int -> Int -> Int -> IO () Source

peekByteOff :: Ptr b -> Int -> IO Int Source

pokeByteOff :: Ptr b -> Int -> Int -> IO () Source

peek :: Ptr Int -> IO Int Source

poke :: Ptr Int -> Int -> IO () Source

PrintfArg Int

Since: base-2.1

Instance details

Defined in Text.Printf

Generic1 (URec Int :: k -> Type)
Instance details

Defined in GHC.Generics

Associated Types

type Rep1 (URec Int) :: k -> Type Source

Methods

from1 :: URec Int a -> Rep1 (URec Int) a Source

to1 :: Rep1 (URec Int) a -> URec Int a Source

Functor (URec Int :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

fmap :: (a -> b) -> URec Int a -> URec Int b Source

(<$) :: a -> URec Int b -> URec Int a Source

Foldable (URec Int :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Foldable

Methods

fold :: Monoid m => URec Int m -> m Source

foldMap :: Monoid m => (a -> m) -> URec Int a -> m Source

foldr :: (a -> b -> b) -> b -> URec Int a -> b Source

foldr' :: (a -> b -> b) -> b -> URec Int a -> b Source

foldl :: (b -> a -> b) -> b -> URec Int a -> b Source

foldl' :: (b -> a -> b) -> b -> URec Int a -> b Source

foldr1 :: (a -> a -> a) -> URec Int a -> a Source

foldl1 :: (a -> a -> a) -> URec Int a -> a Source

toList :: URec Int a -> [a] Source

null :: URec Int a -> Bool Source

length :: URec Int a -> Int Source

elem :: Eq a => a -> URec Int a -> Bool Source

maximum :: Ord a => URec Int a -> a Source

minimum :: Ord a => URec Int a -> a Source

sum :: Num a => URec Int a -> a Source

product :: Num a => URec Int a -> a Source

Traversable (URec Int :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> URec Int a -> f (URec Int b) Source

sequenceA :: Applicative f => URec Int (f a) -> f (URec Int a) Source

mapM :: Monad m => (a -> m b) -> URec Int a -> m (URec Int b) Source

sequence :: Monad m => URec Int (m a) -> m (URec Int a) Source

Eq (URec Int p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

(==) :: URec Int p -> URec Int p -> Bool Source

(/=) :: URec Int p -> URec Int p -> Bool Source

Ord (URec Int p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

compare :: URec Int p -> URec Int p -> Ordering Source

(<) :: URec Int p -> URec Int p -> Bool Source

(<=) :: URec Int p -> URec Int p -> Bool Source

(>) :: URec Int p -> URec Int p -> Bool Source

(>=) :: URec Int p -> URec Int p -> Bool Source

max :: URec Int p -> URec Int p -> URec Int p Source

min :: URec Int p -> URec Int p -> URec Int p Source

Show (URec Int p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

showsPrec :: Int -> URec Int p -> ShowS Source

show :: URec Int p -> String Source

showList :: [URec Int p] -> ShowS Source

Generic (URec Int p)
Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Int p) :: Type -> Type Source

Methods

from :: URec Int p -> Rep (URec Int p) x Source

to :: Rep (URec Int p) x -> URec Int p Source

data URec Int (p :: k)

Used for marking occurrences of Int#

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

data URec Int (p :: k) = UInt {}
type Rep1 (URec Int :: k -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep1 (URec Int :: k -> Type) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UInt" PrefixI True) (S1 (MetaSel (Just "uInt#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UInt :: k -> Type)))
type Rep (URec Int p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep (URec Int p) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UInt" PrefixI True) (S1 (MetaSel (Just "uInt#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UInt :: Type -> Type)))

data Word Source

A Word is an unsigned integral type, with the same size as Int.

Constructors

W# Word#
Instances
Bounded Word

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Word

Since: base-2.1

Instance details

Defined in GHC.Enum

Eq Word
Instance details

Defined in GHC.Classes

Methods

(==) :: Word -> Word -> Bool Source

(/=) :: Word -> Word -> Bool Source

Integral Word

Since: base-2.1

Instance details

Defined in GHC.Real

Data Word

Since: base-4.0.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Word -> c Word Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Word Source

toConstr :: Word -> Constr Source

dataTypeOf :: Word -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Word) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Word) Source

gmapT :: (forall b. Data b => b -> b) -> Word -> Word Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Word -> r Source

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Word -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Word -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Word -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Word -> m Word Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Word -> m Word Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Word -> m Word Source

Num Word

Since: base-2.1

Instance details

Defined in GHC.Num

Ord Word
Instance details

Defined in GHC.Classes

Methods

compare :: Word -> Word -> Ordering Source

(<) :: Word -> Word -> Bool Source

(<=) :: Word -> Word -> Bool Source

(>) :: Word -> Word -> Bool Source

(>=) :: Word -> Word -> Bool Source

max :: Word -> Word -> Word Source

min :: Word -> Word -> Word Source

Read Word

Since: base-4.5.0.0

Instance details

Defined in GHC.Read

Real Word

Since: base-2.1

Instance details

Defined in GHC.Real

Methods

toRational :: Word -> Rational Source

Show Word

Since: base-2.1

Instance details

Defined in GHC.Show

Ix Word

Since: base-4.6.0.0

Instance details

Defined in GHC.Arr

Methods

range :: (Word, Word) -> [Word] Source

index :: (Word, Word) -> Word -> Int Source

unsafeIndex :: (Word, Word) -> Word -> Int

inRange :: (Word, Word) -> Word -> Bool Source

rangeSize :: (Word, Word) -> Int Source

unsafeRangeSize :: (Word, Word) -> Int

FiniteBits Word

Since: base-4.6.0.0

Instance details

Defined in Data.Bits

Bits Word

Since: base-2.1

Instance details

Defined in Data.Bits

Storable Word

Since: base-2.1

Instance details

Defined in Foreign.Storable

PrintfArg Word

Since: base-2.1

Instance details

Defined in Text.Printf

Generic1 (URec Word :: k -> Type)
Instance details

Defined in GHC.Generics

Associated Types

type Rep1 (URec Word) :: k -> Type Source

Methods

from1 :: URec Word a -> Rep1 (URec Word) a Source

to1 :: Rep1 (URec Word) a -> URec Word a Source

Functor (URec Word :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

fmap :: (a -> b) -> URec Word a -> URec Word b Source

(<$) :: a -> URec Word b -> URec Word a Source

Foldable (URec Word :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Foldable

Methods

fold :: Monoid m => URec Word m -> m Source

foldMap :: Monoid m => (a -> m) -> URec Word a -> m Source

foldr :: (a -> b -> b) -> b -> URec Word a -> b Source

foldr' :: (a -> b -> b) -> b -> URec Word a -> b Source

foldl :: (b -> a -> b) -> b -> URec Word a -> b Source

foldl' :: (b -> a -> b) -> b -> URec Word a -> b Source

foldr1 :: (a -> a -> a) -> URec Word a -> a Source

foldl1 :: (a -> a -> a) -> URec Word a -> a Source

toList :: URec Word a -> [a] Source

null :: URec Word a -> Bool Source

length :: URec Word a -> Int Source

elem :: Eq a => a -> URec Word a -> Bool Source

maximum :: Ord a => URec Word a -> a Source

minimum :: Ord a => URec Word a -> a Source

sum :: Num a => URec Word a -> a Source

product :: Num a => URec Word a -> a Source

Traversable (URec Word :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> URec Word a -> f (URec Word b) Source

sequenceA :: Applicative f => URec Word (f a) -> f (URec Word a) Source

mapM :: Monad m => (a -> m b) -> URec Word a -> m (URec Word b) Source

sequence :: Monad m => URec Word (m a) -> m (URec Word a) Source

Eq (URec Word p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

(==) :: URec Word p -> URec Word p -> Bool Source

(/=) :: URec Word p -> URec Word p -> Bool Source

Ord (URec Word p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

compare :: URec Word p -> URec Word p -> Ordering Source

(<) :: URec Word p -> URec Word p -> Bool Source

(<=) :: URec Word p -> URec Word p -> Bool Source

(>) :: URec Word p -> URec Word p -> Bool Source

(>=) :: URec Word p -> URec Word p -> Bool Source

max :: URec Word p -> URec Word p -> URec Word p Source

min :: URec Word p -> URec Word p -> URec Word p Source

Show (URec Word p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Generic (URec Word p)
Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Word p) :: Type -> Type Source

Methods

from :: URec Word p -> Rep (URec Word p) x Source

to :: Rep (URec Word p) x -> URec Word p Source

data URec Word (p :: k)

Used for marking occurrences of Word#

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

data URec Word (p :: k) = UWord {}
type Rep1 (URec Word :: k -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep1 (URec Word :: k -> Type) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UWord" PrefixI True) (S1 (MetaSel (Just "uWord#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UWord :: k -> Type)))
type Rep (URec Word p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep (URec Word p) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UWord" PrefixI True) (S1 (MetaSel (Just "uWord#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UWord :: Type -> Type)))

data Float Source

Single-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE single-precision type.

Constructors

F# Float#
Instances
Enum Float

Since: base-2.1

Instance details

Defined in GHC.Float

Eq Float

Note that due to the presence of NaN, Float's Eq instance does not satisfy reflexivity.

>>> 0/0 == (0/0 :: Float)
False

Also note that Float's Eq instance does not satisfy substitutivity:

>>> 0 == (-0 :: Float)
True
>>> recip 0 == recip (-0 :: Float)
False
Instance details

Defined in GHC.Classes

Methods

(==) :: Float -> Float -> Bool Source

(/=) :: Float -> Float -> Bool Source

Floating Float

Since: base-2.1

Instance details

Defined in GHC.Float

Fractional Float

Note that due to the presence of NaN, not all elements of Float have an multiplicative inverse.

>>> 0/0 * (recip 0/0 :: Float)
NaN

Since: base-2.1

Instance details

Defined in GHC.Float

Data Float

Since: base-4.0.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Float -> c Float Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Float Source

toConstr :: Float -> Constr Source

dataTypeOf :: Float -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Float) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Float) Source

gmapT :: (forall b. Data b => b -> b) -> Float -> Float Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Float -> r Source

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Float -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Float -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Float -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Float -> m Float Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Float -> m Float Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Float -> m Float Source

Num Float

Note that due to the presence of NaN, not all elements of Float have an additive inverse.

>>> 0/0 + (negate 0/0 :: Float)
NaN

Also note that due to the presence of -0, Float's Num instance doesn't have an additive identity

>>> 0 + (-0 :: Float)
0.0

Since: base-2.1

Instance details

Defined in GHC.Float

Ord Float

Note that due to the presence of NaN, Float's Ord instance does not satisfy reflexivity.

>>> 0/0 <= (0/0 :: Float)
False

Also note that, due to the same, Ord's operator interactions are not respected by Float's instance:

>>> (0/0 :: Float) > 1
False
>>> compare (0/0 :: Float) 1
GT
Instance details

Defined in GHC.Classes

Read Float

Since: base-2.1

Instance details

Defined in GHC.Read

Real Float

Since: base-2.1

Instance details

Defined in GHC.Float

RealFloat Float

Since: base-2.1

Instance details

Defined in GHC.Float

RealFrac Float

Since: base-2.1

Instance details

Defined in GHC.Float

Methods

properFraction :: Integral b => Float -> (b, Float) Source

truncate :: Integral b => Float -> b Source

round :: Integral b => Float -> b Source

ceiling :: Integral b => Float -> b Source

floor :: Integral b => Float -> b Source

Show Float

Since: base-2.1

Instance details

Defined in GHC.Float

Storable Float

Since: base-2.1

Instance details

Defined in Foreign.Storable

PrintfArg Float

Since: base-2.1

Instance details

Defined in Text.Printf

Generic1 (URec Float :: k -> Type)
Instance details

Defined in GHC.Generics

Associated Types

type Rep1 (URec Float) :: k -> Type Source

Methods

from1 :: URec Float a -> Rep1 (URec Float) a Source

to1 :: Rep1 (URec Float) a -> URec Float a Source

Functor (URec Float :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

fmap :: (a -> b) -> URec Float a -> URec Float b Source

(<$) :: a -> URec Float b -> URec Float a Source

Foldable (URec Float :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Foldable

Methods

fold :: Monoid m => URec Float m -> m Source

foldMap :: Monoid m => (a -> m) -> URec Float a -> m Source

foldr :: (a -> b -> b) -> b -> URec Float a -> b Source

foldr' :: (a -> b -> b) -> b -> URec Float a -> b Source

foldl :: (b -> a -> b) -> b -> URec Float a -> b Source

foldl' :: (b -> a -> b) -> b -> URec Float a -> b Source

foldr1 :: (a -> a -> a) -> URec Float a -> a Source

foldl1 :: (a -> a -> a) -> URec Float a -> a Source

toList :: URec Float a -> [a] Source

null :: URec Float a -> Bool Source

length :: URec Float a -> Int Source

elem :: Eq a => a -> URec Float a -> Bool Source

maximum :: Ord a => URec Float a -> a Source

minimum :: Ord a => URec Float a -> a Source

sum :: Num a => URec Float a -> a Source

product :: Num a => URec Float a -> a Source

Traversable (URec Float :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> URec Float a -> f (URec Float b) Source

sequenceA :: Applicative f => URec Float (f a) -> f (URec Float a) Source

mapM :: Monad m => (a -> m b) -> URec Float a -> m (URec Float b) Source

sequence :: Monad m => URec Float (m a) -> m (URec Float a) Source

Eq (URec Float p)
Instance details

Defined in GHC.Generics

Methods

(==) :: URec Float p -> URec Float p -> Bool Source

(/=) :: URec Float p -> URec Float p -> Bool Source

Ord (URec Float p)
Instance details

Defined in GHC.Generics

Show (URec Float p)
Instance details

Defined in GHC.Generics

Generic (URec Float p)
Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Float p) :: Type -> Type Source

Methods

from :: URec Float p -> Rep (URec Float p) x Source

to :: Rep (URec Float p) x -> URec Float p Source

data URec Float (p :: k)

Used for marking occurrences of Float#

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

data URec Float (p :: k) = UFloat {}
type Rep1 (URec Float :: k -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep1 (URec Float :: k -> Type) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UFloat" PrefixI True) (S1 (MetaSel (Just "uFloat#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UFloat :: k -> Type)))
type Rep (URec Float p)
Instance details

Defined in GHC.Generics

type Rep (URec Float p) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UFloat" PrefixI True) (S1 (MetaSel (Just "uFloat#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UFloat :: Type -> Type)))

data Double Source

Double-precision floating point numbers. It is desirable that this type be at least equal in range and precision to the IEEE double-precision type.

Constructors

D# Double#
Instances
Enum Double

Since: base-2.1

Instance details

Defined in GHC.Float

Eq Double

Note that due to the presence of NaN, Double's Eq instance does not satisfy reflexivity.

>>> 0/0 == (0/0 :: Double)
False

Also note that Double's Eq instance does not satisfy substitutivity:

>>> 0 == (-0 :: Double)
True
>>> recip 0 == recip (-0 :: Double)
False
Instance details

Defined in GHC.Classes

Methods

(==) :: Double -> Double -> Bool Source

(/=) :: Double -> Double -> Bool Source

Floating Double

Since: base-2.1

Instance details

Defined in GHC.Float

Fractional Double

Note that due to the presence of NaN, not all elements of Double have an multiplicative inverse.

>>> 0/0 * (recip 0/0 :: Double)
NaN

Since: base-2.1

Instance details

Defined in GHC.Float

Data Double

Since: base-4.0.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Double -> c Double Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Double Source

toConstr :: Double -> Constr Source

dataTypeOf :: Double -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Double) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Double) Source

gmapT :: (forall b. Data b => b -> b) -> Double -> Double Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Double -> r Source

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Double -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Double -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Double -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Double -> m Double Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Double -> m Double Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Double -> m Double Source

Num Double

Note that due to the presence of NaN, not all elements of Double have an additive inverse.

>>> 0/0 + (negate 0/0 :: Double)
NaN

Also note that due to the presence of -0, Double's Num instance doesn't have an additive identity

>>> 0 + (-0 :: Double)
0.0

Since: base-2.1

Instance details

Defined in GHC.Float

Ord Double

Note that due to the presence of NaN, Double's Ord instance does not satisfy reflexivity.

>>> 0/0 <= (0/0 :: Double)
False

Also note that, due to the same, Ord's operator interactions are not respected by Double's instance:

>>> (0/0 :: Double) > 1
False
>>> compare (0/0 :: Double) 1
GT
Instance details

Defined in GHC.Classes

Read Double

Since: base-2.1

Instance details

Defined in GHC.Read

Real Double

Since: base-2.1

Instance details

Defined in GHC.Float

RealFloat Double

Since: base-2.1

Instance details

Defined in GHC.Float

RealFrac Double

Since: base-2.1

Instance details

Defined in GHC.Float

Methods

properFraction :: Integral b => Double -> (b, Double) Source

truncate :: Integral b => Double -> b Source

round :: Integral b => Double -> b Source

ceiling :: Integral b => Double -> b Source

floor :: Integral b => Double -> b Source

Show Double

Since: base-2.1

Instance details

Defined in GHC.Float

Storable Double

Since: base-2.1

Instance details

Defined in Foreign.Storable

PrintfArg Double

Since: base-2.1

Instance details

Defined in Text.Printf

Generic1 (URec Double :: k -> Type)
Instance details

Defined in GHC.Generics

Associated Types

type Rep1 (URec Double) :: k -> Type Source

Methods

from1 :: URec Double a -> Rep1 (URec Double) a Source

to1 :: Rep1 (URec Double) a -> URec Double a Source

Functor (URec Double :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

fmap :: (a -> b) -> URec Double a -> URec Double b Source

(<$) :: a -> URec Double b -> URec Double a Source

Foldable (URec Double :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Foldable

Methods

fold :: Monoid m => URec Double m -> m Source

foldMap :: Monoid m => (a -> m) -> URec Double a -> m Source

foldr :: (a -> b -> b) -> b -> URec Double a -> b Source

foldr' :: (a -> b -> b) -> b -> URec Double a -> b Source

foldl :: (b -> a -> b) -> b -> URec Double a -> b Source

foldl' :: (b -> a -> b) -> b -> URec Double a -> b Source

foldr1 :: (a -> a -> a) -> URec Double a -> a Source

foldl1 :: (a -> a -> a) -> URec Double a -> a Source

toList :: URec Double a -> [a] Source

null :: URec Double a -> Bool Source

length :: URec Double a -> Int Source

elem :: Eq a => a -> URec Double a -> Bool Source

maximum :: Ord a => URec Double a -> a Source

minimum :: Ord a => URec Double a -> a Source

sum :: Num a => URec Double a -> a Source

product :: Num a => URec Double a -> a Source

Traversable (URec Double :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> URec Double a -> f (URec Double b) Source

sequenceA :: Applicative f => URec Double (f a) -> f (URec Double a) Source

mapM :: Monad m => (a -> m b) -> URec Double a -> m (URec Double b) Source

sequence :: Monad m => URec Double (m a) -> m (URec Double a) Source

Eq (URec Double p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

(==) :: URec Double p -> URec Double p -> Bool Source

(/=) :: URec Double p -> URec Double p -> Bool Source

Ord (URec Double p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Show (URec Double p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Generic (URec Double p)
Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Double p) :: Type -> Type Source

Methods

from :: URec Double p -> Rep (URec Double p) x Source

to :: Rep (URec Double p) x -> URec Double p Source

data URec Double (p :: k)

Used for marking occurrences of Double#

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

data URec Double (p :: k) = UDouble {}
type Rep1 (URec Double :: k -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep1 (URec Double :: k -> Type) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UDouble" PrefixI True) (S1 (MetaSel (Just "uDouble#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UDouble :: k -> Type)))
type Rep (URec Double p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep (URec Double p) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UDouble" PrefixI True) (S1 (MetaSel (Just "uDouble#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UDouble :: Type -> Type)))

data Char Source

The character type Char is an enumeration whose values represent Unicode (or equivalently ISO/IEC 10646) code points (i.e. characters, see http://www.unicode.org/ for details). This set extends the ISO 8859-1 (Latin-1) character set (the first 256 characters), which is itself an extension of the ASCII character set (the first 128 characters). A character literal in Haskell has type Char.

To convert a Char to or from the corresponding Int value defined by Unicode, use toEnum and fromEnum from the Enum class respectively (or equivalently ord and chr).

Constructors

C# Char#
Instances
Bounded Char

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Char

Since: base-2.1

Instance details

Defined in GHC.Enum

Eq Char
Instance details

Defined in GHC.Classes

Methods

(==) :: Char -> Char -> Bool Source

(/=) :: Char -> Char -> Bool Source

Data Char

Since: base-4.0.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Char -> c Char Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Char Source

toConstr :: Char -> Constr Source

dataTypeOf :: Char -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Char) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Char) Source

gmapT :: (forall b. Data b => b -> b) -> Char -> Char Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Char -> r Source

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Char -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Char -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Char -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Char -> m Char Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Char -> m Char Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Char -> m Char Source

Ord Char
Instance details

Defined in GHC.Classes

Methods

compare :: Char -> Char -> Ordering Source

(<) :: Char -> Char -> Bool Source

(<=) :: Char -> Char -> Bool Source

(>) :: Char -> Char -> Bool Source

(>=) :: Char -> Char -> Bool Source

max :: Char -> Char -> Char Source

min :: Char -> Char -> Char Source

Read Char

Since: base-2.1

Instance details

Defined in GHC.Read

Show Char

Since: base-2.1

Instance details

Defined in GHC.Show

Ix Char

Since: base-2.1

Instance details

Defined in GHC.Arr

Methods

range :: (Char, Char) -> [Char] Source

index :: (Char, Char) -> Char -> Int Source

unsafeIndex :: (Char, Char) -> Char -> Int

inRange :: (Char, Char) -> Char -> Bool Source

rangeSize :: (Char, Char) -> Int Source

unsafeRangeSize :: (Char, Char) -> Int

Storable Char

Since: base-2.1

Instance details

Defined in Foreign.Storable

IsChar Char

Since: base-2.1

Instance details

Defined in Text.Printf

Methods

toChar :: Char -> Char Source

fromChar :: Char -> Char Source

PrintfArg Char

Since: base-2.1

Instance details

Defined in Text.Printf

Generic1 (URec Char :: k -> Type)
Instance details

Defined in GHC.Generics

Associated Types

type Rep1 (URec Char) :: k -> Type Source

Methods

from1 :: URec Char a -> Rep1 (URec Char) a Source

to1 :: Rep1 (URec Char) a -> URec Char a Source

Functor (URec Char :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

fmap :: (a -> b) -> URec Char a -> URec Char b Source

(<$) :: a -> URec Char b -> URec Char a Source

Foldable (URec Char :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Foldable

Methods

fold :: Monoid m => URec Char m -> m Source

foldMap :: Monoid m => (a -> m) -> URec Char a -> m Source

foldr :: (a -> b -> b) -> b -> URec Char a -> b Source

foldr' :: (a -> b -> b) -> b -> URec Char a -> b Source

foldl :: (b -> a -> b) -> b -> URec Char a -> b Source

foldl' :: (b -> a -> b) -> b -> URec Char a -> b Source

foldr1 :: (a -> a -> a) -> URec Char a -> a Source

foldl1 :: (a -> a -> a) -> URec Char a -> a Source

toList :: URec Char a -> [a] Source

null :: URec Char a -> Bool Source

length :: URec Char a -> Int Source

elem :: Eq a => a -> URec Char a -> Bool Source

maximum :: Ord a => URec Char a -> a Source

minimum :: Ord a => URec Char a -> a Source

sum :: Num a => URec Char a -> a Source

product :: Num a => URec Char a -> a Source

Traversable (URec Char :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> URec Char a -> f (URec Char b) Source

sequenceA :: Applicative f => URec Char (f a) -> f (URec Char a) Source

mapM :: Monad m => (a -> m b) -> URec Char a -> m (URec Char b) Source

sequence :: Monad m => URec Char (m a) -> m (URec Char a) Source

Eq (URec Char p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

(==) :: URec Char p -> URec Char p -> Bool Source

(/=) :: URec Char p -> URec Char p -> Bool Source

Ord (URec Char p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

compare :: URec Char p -> URec Char p -> Ordering Source

(<) :: URec Char p -> URec Char p -> Bool Source

(<=) :: URec Char p -> URec Char p -> Bool Source

(>) :: URec Char p -> URec Char p -> Bool Source

(>=) :: URec Char p -> URec Char p -> Bool Source

max :: URec Char p -> URec Char p -> URec Char p Source

min :: URec Char p -> URec Char p -> URec Char p Source

Show (URec Char p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Generic (URec Char p)
Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec Char p) :: Type -> Type Source

Methods

from :: URec Char p -> Rep (URec Char p) x Source

to :: Rep (URec Char p) x -> URec Char p Source

data URec Char (p :: k)

Used for marking occurrences of Char#

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

data URec Char (p :: k) = UChar {}
type Rep1 (URec Char :: k -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep1 (URec Char :: k -> Type) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UChar" PrefixI True) (S1 (MetaSel (Just "uChar#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UChar :: k -> Type)))
type Rep (URec Char p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep (URec Char p) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UChar" PrefixI True) (S1 (MetaSel (Just "uChar#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UChar :: Type -> Type)))

data Ptr a Source

A value of type Ptr a represents a pointer to an object, or an array of objects, which may be marshalled to or from Haskell values of type a.

The type a will often be an instance of class Storable which provides the marshalling operations. However this is not essential, and you can provide your own operations to access the pointer. For example you might write small foreign functions to get or set the fields of a C struct.

Constructors

Ptr Addr#
Instances
Generic1 (URec (Ptr ()) :: k -> Type)
Instance details

Defined in GHC.Generics

Associated Types

type Rep1 (URec (Ptr ())) :: k -> Type Source

Methods

from1 :: URec (Ptr ()) a -> Rep1 (URec (Ptr ())) a Source

to1 :: Rep1 (URec (Ptr ())) a -> URec (Ptr ()) a Source

Eq (Ptr a)

Since: base-2.1

Instance details

Defined in GHC.Ptr

Methods

(==) :: Ptr a -> Ptr a -> Bool Source

(/=) :: Ptr a -> Ptr a -> Bool Source

Data a => Data (Ptr a)

Since: base-4.8.0.0

Instance details

Defined in Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ptr a -> c (Ptr a) Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ptr a) Source

toConstr :: Ptr a -> Constr Source

dataTypeOf :: Ptr a -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ptr a)) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ptr a)) Source

gmapT :: (forall b. Data b => b -> b) -> Ptr a -> Ptr a Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ptr a -> r Source

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ptr a -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Ptr a -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Ptr a -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr a -> m (Ptr a) Source

Ord (Ptr a)

Since: base-2.1

Instance details

Defined in GHC.Ptr

Methods

compare :: Ptr a -> Ptr a -> Ordering Source

(<) :: Ptr a -> Ptr a -> Bool Source

(<=) :: Ptr a -> Ptr a -> Bool Source

(>) :: Ptr a -> Ptr a -> Bool Source

(>=) :: Ptr a -> Ptr a -> Bool Source

max :: Ptr a -> Ptr a -> Ptr a Source

min :: Ptr a -> Ptr a -> Ptr a Source

Show (Ptr a)

Since: base-2.1

Instance details

Defined in GHC.Ptr

Methods

showsPrec :: Int -> Ptr a -> ShowS Source

show :: Ptr a -> String Source

showList :: [Ptr a] -> ShowS Source

Storable (Ptr a)

Since: base-2.1

Instance details

Defined in Foreign.Storable

Methods

sizeOf :: Ptr a -> Int Source

alignment :: Ptr a -> Int Source

peekElemOff :: Ptr (Ptr a) -> Int -> IO (Ptr a) Source

pokeElemOff :: Ptr (Ptr a) -> Int -> Ptr a -> IO () Source

peekByteOff :: Ptr b -> Int -> IO (Ptr a) Source

pokeByteOff :: Ptr b -> Int -> Ptr a -> IO () Source

peek :: Ptr (Ptr a) -> IO (Ptr a) Source

poke :: Ptr (Ptr a) -> Ptr a -> IO () Source

Functor (URec (Ptr ()) :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

fmap :: (a -> b) -> URec (Ptr ()) a -> URec (Ptr ()) b Source

(<$) :: a -> URec (Ptr ()) b -> URec (Ptr ()) a Source

Foldable (URec (Ptr ()) :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Foldable

Methods

fold :: Monoid m => URec (Ptr ()) m -> m Source

foldMap :: Monoid m => (a -> m) -> URec (Ptr ()) a -> m Source

foldr :: (a -> b -> b) -> b -> URec (Ptr ()) a -> b Source

foldr' :: (a -> b -> b) -> b -> URec (Ptr ()) a -> b Source

foldl :: (b -> a -> b) -> b -> URec (Ptr ()) a -> b Source

foldl' :: (b -> a -> b) -> b -> URec (Ptr ()) a -> b Source

foldr1 :: (a -> a -> a) -> URec (Ptr ()) a -> a Source

foldl1 :: (a -> a -> a) -> URec (Ptr ()) a -> a Source

toList :: URec (Ptr ()) a -> [a] Source

null :: URec (Ptr ()) a -> Bool Source

length :: URec (Ptr ()) a -> Int Source

elem :: Eq a => a -> URec (Ptr ()) a -> Bool Source

maximum :: Ord a => URec (Ptr ()) a -> a Source

minimum :: Ord a => URec (Ptr ()) a -> a Source

sum :: Num a => URec (Ptr ()) a -> a Source

product :: Num a => URec (Ptr ()) a -> a Source

Traversable (URec (Ptr ()) :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Traversable

Methods

traverse :: Applicative f => (a -> f b) -> URec (Ptr ()) a -> f (URec (Ptr ()) b) Source

sequenceA :: Applicative f => URec (Ptr ()) (f a) -> f (URec (Ptr ()) a) Source

mapM :: Monad m => (a -> m b) -> URec (Ptr ()) a -> m (URec (Ptr ()) b) Source

sequence :: Monad m => URec (Ptr ()) (m a) -> m (URec (Ptr ()) a) Source

Eq (URec (Ptr ()) p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

(==) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source

(/=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source

Ord (URec (Ptr ()) p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

compare :: URec (Ptr ()) p -> URec (Ptr ()) p -> Ordering Source

(<) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source

(<=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source

(>) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source

(>=) :: URec (Ptr ()) p -> URec (Ptr ()) p -> Bool Source

max :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p Source

min :: URec (Ptr ()) p -> URec (Ptr ()) p -> URec (Ptr ()) p Source

Generic (URec (Ptr ()) p)
Instance details

Defined in GHC.Generics

Associated Types

type Rep (URec (Ptr ()) p) :: Type -> Type Source

Methods

from :: URec (Ptr ()) p -> Rep (URec (Ptr ()) p) x Source

to :: Rep (URec (Ptr ()) p) x -> URec (Ptr ()) p Source

data URec (Ptr ()) (p :: k)

Used for marking occurrences of Addr#

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

data URec (Ptr ()) (p :: k) = UAddr {}
type Rep1 (URec (Ptr ()) :: k -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep1 (URec (Ptr ()) :: k -> Type) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UAddr" PrefixI True) (S1 (MetaSel (Just "uAddr#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UAddr :: k -> Type)))
type Rep (URec (Ptr ()) p)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

type Rep (URec (Ptr ()) p) = D1 (MetaData "URec" "GHC.Generics" "base" False) (C1 (MetaCons "UAddr" PrefixI True) (S1 (MetaSel (Just "uAddr#") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (UAddr :: Type -> Type)))

data FunPtr a Source

A value of type FunPtr a is a pointer to a function callable from foreign code. The type a will normally be a foreign type, a function type with zero or more arguments where

A value of type FunPtr a may be a pointer to a foreign function, either returned by another foreign function or imported with a a static address import like

foreign import ccall "stdlib.h &free"
  p_free :: FunPtr (Ptr a -> IO ())

or a pointer to a Haskell function created using a wrapper stub declared to produce a FunPtr of the correct type. For example:

type Compare = Int -> Int -> Bool
foreign import ccall "wrapper"
  mkCompare :: Compare -> IO (FunPtr Compare)

Calls to wrapper stubs like mkCompare allocate storage, which should be released with freeHaskellFunPtr when no longer required.

To convert FunPtr values to corresponding Haskell functions, one can define a dynamic stub for the specific foreign type, e.g.

type IntFunction = CInt -> IO ()
foreign import ccall "dynamic"
  mkFun :: FunPtr IntFunction -> IntFunction

Constructors

FunPtr Addr#
Instances
Eq (FunPtr a)
Instance details

Defined in GHC.Ptr

Methods

(==) :: FunPtr a -> FunPtr a -> Bool Source

(/=) :: FunPtr a -> FunPtr a -> Bool Source

Ord (FunPtr a)
Instance details

Defined in GHC.Ptr

Methods

compare :: FunPtr a -> FunPtr a -> Ordering Source

(<) :: FunPtr a -> FunPtr a -> Bool Source

(<=) :: FunPtr a -> FunPtr a -> Bool Source

(>) :: FunPtr a -> FunPtr a -> Bool Source

(>=) :: FunPtr a -> FunPtr a -> Bool Source

max :: FunPtr a -> FunPtr a -> FunPtr a Source

min :: FunPtr a -> FunPtr a -> FunPtr a Source

Show (FunPtr a)

Since: base-2.1

Instance details

Defined in GHC.Ptr

Methods

showsPrec :: Int -> FunPtr a -> ShowS Source

show :: FunPtr a -> String Source

showList :: [FunPtr a] -> ShowS Source

Storable (FunPtr a)

Since: base-2.1

Instance details

Defined in Foreign.Storable

Methods

sizeOf :: FunPtr a -> Int Source

alignment :: FunPtr a -> Int Source

peekElemOff :: Ptr (FunPtr a) -> Int -> IO (FunPtr a) Source

pokeElemOff :: Ptr (FunPtr a) -> Int -> FunPtr a -> IO () Source

peekByteOff :: Ptr b -> Int -> IO (FunPtr a) Source

pokeByteOff :: Ptr b -> Int -> FunPtr a -> IO () Source

peek :: Ptr (FunPtr a) -> IO (FunPtr a) Source

poke :: Ptr (FunPtr a) -> FunPtr a -> IO () Source

The maximum tuple size

maxTupleSize :: Int Source

Primitive operations

seq :: a -> b -> b Source

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.

realWorld# :: State# RealWorld Source

void# :: Void# Source

unsafeCoerce# :: a -> b Source

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.

nullAddr# :: Addr# Source

The null address.

magicDict :: a Source

proxy# :: Proxy# a Source

Witness for an unboxed Proxy# value, which has no runtime representation.

data Addr# :: TYPE AddrRep Source

An arbitrary machine address assumed to point outside the garbage-collected heap.

data Array# (a :: Type) :: Type -> TYPE UnliftedRep Source

data ByteArray# :: TYPE UnliftedRep Source

data Char# :: TYPE WordRep Source

data Double# :: TYPE DoubleRep Source

data Float# :: TYPE FloatRep Source

data Int# :: TYPE IntRep Source

data Int32# :: TYPE IntRep Source

data Int64# :: TYPE Int64Rep Source

data Weak# (a :: Type) :: Type -> TYPE UnliftedRep Source

data MutableArray# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep Source

data MutableByteArray# (a :: Type) :: Type -> TYPE UnliftedRep Source

data MVar# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep Source

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 RealWorld :: Type Source

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 StablePtr# (a :: Type) :: Type -> TYPE AddrRep Source

data ArrayArray# :: TYPE UnliftedRep Source

data MutableArrayArray# (a :: Type) :: Type -> TYPE UnliftedRep Source

data State# (a :: Type) :: Type -> TYPE (TupleRep ([] :: [RuntimeRep])) Source

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 StableName# (a :: Type) :: Type -> TYPE UnliftedRep Source

data MutVar# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep Source

A MutVar# behaves like a single-element mutable array.

data Void# :: TYPE (TupleRep ([] :: [RuntimeRep])) Source

data Word# :: TYPE WordRep Source

data Word32# :: TYPE WordRep Source

data Word64# :: TYPE Word64Rep Source

data ThreadId# :: TYPE UnliftedRep Source

(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 BCO# :: TYPE UnliftedRep Source

Primitive bytecode type.

data TVar# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep Source

data Compact# :: TYPE UnliftedRep Source

data Proxy# :: forall k0. k0 -> TYPE (TupleRep ([] :: [RuntimeRep])) Source

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 SmallArray# (a :: Type) :: Type -> TYPE UnliftedRep Source

data SmallMutableArray# (a :: Type) (b :: Type) :: Type -> Type -> TYPE UnliftedRep Source

data Int8X16# :: TYPE (VecRep Vec16 Int8ElemRep) Source

data Int16X8# :: TYPE (VecRep Vec8 Int16ElemRep) Source

data Int32X4# :: TYPE (VecRep Vec4 Int32ElemRep) Source

data Int64X2# :: TYPE (VecRep Vec2 Int64ElemRep) Source

data Int8X32# :: TYPE (VecRep Vec32 Int8ElemRep) Source

data Int16X16# :: TYPE (VecRep Vec16 Int16ElemRep) Source

data Int32X8# :: TYPE (VecRep Vec8 Int32ElemRep) Source

data Int64X4# :: TYPE (VecRep Vec4 Int64ElemRep) Source

data Int8X64# :: TYPE (VecRep Vec64 Int8ElemRep) Source

data Int16X32# :: TYPE (VecRep Vec32 Int16ElemRep) Source

data Int32X16# :: TYPE (VecRep Vec16 Int32ElemRep) Source

data Int64X8# :: TYPE (VecRep Vec8 Int64ElemRep) Source

data Word8X16# :: TYPE (VecRep Vec16 Word8ElemRep) Source

data Word16X8# :: TYPE (VecRep Vec8 Word16ElemRep) Source

data Word32X4# :: TYPE (VecRep Vec4 Word32ElemRep) Source

data Word64X2# :: TYPE (VecRep Vec2 Word64ElemRep) Source

data Word8X32# :: TYPE (VecRep Vec32 Word8ElemRep) Source

data Word16X16# :: TYPE (VecRep Vec16 Word16ElemRep) Source

data Word32X8# :: TYPE (VecRep Vec8 Word32ElemRep) Source

data Word64X4# :: TYPE (VecRep Vec4 Word64ElemRep) Source

data Word8X64# :: TYPE (VecRep Vec64 Word8ElemRep) Source

data Word16X32# :: TYPE (VecRep Vec32 Word16ElemRep) Source

data Word32X16# :: TYPE (VecRep Vec16 Word32ElemRep) Source

data Word64X8# :: TYPE (VecRep Vec8 Word64ElemRep) Source

data FloatX4# :: TYPE (VecRep Vec4 FloatElemRep) Source

data DoubleX2# :: TYPE (VecRep Vec2 DoubleElemRep) Source

data FloatX8# :: TYPE (VecRep Vec8 FloatElemRep) Source

data DoubleX4# :: TYPE (VecRep Vec4 DoubleElemRep) Source

data FloatX16# :: TYPE (VecRep Vec16 FloatElemRep) Source

data DoubleX8# :: TYPE (VecRep Vec8 DoubleElemRep) Source

gtChar# :: Char# -> Char# -> Int# Source

geChar# :: Char# -> Char# -> Int# Source

eqChar# :: Char# -> Char# -> Int# Source

neChar# :: Char# -> Char# -> Int# Source

ltChar# :: Char# -> Char# -> Int# Source

leChar# :: Char# -> Char# -> Int# Source

ord# :: Char# -> Int# Source

(+#) :: Int# -> Int# -> Int# infixl 6 Source

(-#) :: Int# -> Int# -> Int# infixl 6 Source

(*#) :: Int# -> Int# -> Int# infixl 7 Source

Low word of signed integer multiply.

mulIntMayOflo# :: Int# -> Int# -> Int# Source

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.

quotInt# :: Int# -> Int# -> Int# Source

Rounds towards zero. The behavior is undefined if the second argument is zero.

remInt# :: Int# -> Int# -> Int# Source

Satisfies (quotInt# x y) *# y +# (remInt# x y) == x. The behavior is undefined if the second argument is zero.

quotRemInt# :: Int# -> Int# -> (#Int#, Int##) Source

Rounds towards zero.

andI# :: Int# -> Int# -> Int# Source

orI# :: Int# -> Int# -> Int# Source

xorI# :: Int# -> Int# -> Int# Source

notI# :: Int# -> Int# Source

negateInt# :: Int# -> Int# Source

addIntC# :: Int# -> Int# -> (#Int#, Int##) Source

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

subIntC# :: Int# -> Int# -> (#Int#, Int##) Source

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

(>#) :: Int# -> Int# -> Int# infix 4 Source

(>=#) :: Int# -> Int# -> Int# infix 4 Source

(==#) :: Int# -> Int# -> Int# infix 4 Source

(/=#) :: Int# -> Int# -> Int# infix 4 Source

(<#) :: Int# -> Int# -> Int# infix 4 Source

(<=#) :: Int# -> Int# -> Int# infix 4 Source

chr# :: Int# -> Char# Source

int2Word# :: Int# -> Word# Source

int2Float# :: Int# -> Float# Source

int2Double# :: Int# -> Double# Source

word2Float# :: Word# -> Float# Source

word2Double# :: Word# -> Double# Source

uncheckedIShiftL# :: Int# -> Int# -> Int# Source

Shift left. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.

uncheckedIShiftRA# :: Int# -> Int# -> Int# Source

Shift right arithmetic. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.

uncheckedIShiftRL# :: Int# -> Int# -> Int# Source

Shift right logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.

plusWord# :: Word# -> Word# -> Word# Source

addWordC# :: Word# -> Word# -> (#Word#, Int##) Source

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

subWordC# :: Word# -> Word# -> (#Word#, Int##) Source

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.

plusWord2# :: Word# -> Word# -> (#Word#, Word##) Source

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

minusWord# :: Word# -> Word# -> Word# Source

timesWord# :: Word# -> Word# -> Word# Source

timesWord2# :: Word# -> Word# -> (#Word#, Word##) Source

quotWord# :: Word# -> Word# -> Word# Source

remWord# :: Word# -> Word# -> Word# Source

quotRemWord# :: Word# -> Word# -> (#Word#, Word##) Source

quotRemWord2# :: Word# -> Word# -> Word# -> (#Word#, Word##) Source

and# :: Word# -> Word# -> Word# Source

or# :: Word# -> Word# -> Word# Source

xor# :: Word# -> Word# -> Word# Source

not# :: Word# -> Word# Source

uncheckedShiftL# :: Word# -> Int# -> Word# Source

Shift left logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.

uncheckedShiftRL# :: Word# -> Int# -> Word# Source

Shift right logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive.

word2Int# :: Word# -> Int# Source

gtWord# :: Word# -> Word# -> Int# Source

geWord# :: Word# -> Word# -> Int# Source

eqWord# :: Word# -> Word# -> Int# Source

neWord# :: Word# -> Word# -> Int# Source

ltWord# :: Word# -> Word# -> Int# Source

leWord# :: Word# -> Word# -> Int# Source

popCnt8# :: Word# -> Word# Source

Count the number of set bits in the lower 8 bits of a word.

popCnt16# :: Word# -> Word# Source

Count the number of set bits in the lower 16 bits of a word.

popCnt32# :: Word# -> Word# Source

Count the number of set bits in the lower 32 bits of a word.

popCnt64# :: Word# -> Word# Source

Count the number of set bits in a 64-bit word.

popCnt# :: Word# -> Word# Source

Count the number of set bits in a word.

pdep8# :: Word# -> Word# -> Word# Source

Deposit bits to lower 8 bits of a word at locations specified by a mask.

pdep16# :: Word# -> Word# -> Word# Source

Deposit bits to lower 16 bits of a word at locations specified by a mask.

pdep32# :: Word# -> Word# -> Word# Source

Deposit bits to lower 32 bits of a word at locations specified by a mask.

pdep64# :: Word# -> Word# -> Word# Source

Deposit bits to a word at locations specified by a mask.

pdep# :: Word# -> Word# -> Word# Source

Deposit bits to a word at locations specified by a mask.

pext8# :: Word# -> Word# -> Word# Source

Extract bits from lower 8 bits of a word at locations specified by a mask.

pext16# :: Word# -> Word# -> Word# Source

Extract bits from lower 16 bits of a word at locations specified by a mask.

pext32# :: Word# -> Word# -> Word# Source

Extract bits from lower 32 bits of a word at locations specified by a mask.

pext64# :: Word# -> Word# -> Word# Source

Extract bits from a word at locations specified by a mask.

pext# :: Word# -> Word# -> Word# Source

Extract bits from a word at locations specified by a mask.

clz8# :: Word# -> Word# Source

Count leading zeros in the lower 8 bits of a word.

clz16# :: Word# -> Word# Source

Count leading zeros in the lower 16 bits of a word.

clz32# :: Word# -> Word# Source

Count leading zeros in the lower 32 bits of a word.

clz64# :: Word# -> Word# Source

Count leading zeros in a 64-bit word.

clz# :: Word# -> Word# Source

Count leading zeros in a word.

ctz8# :: Word# -> Word# Source

Count trailing zeros in the lower 8 bits of a word.

ctz16# :: Word# -> Word# Source

Count trailing zeros in the lower 16 bits of a word.

ctz32# :: Word# -> Word# Source

Count trailing zeros in the lower 32 bits of a word.

ctz64# :: Word# -> Word# Source

Count trailing zeros in a 64-bit word.

ctz# :: Word# -> Word# Source

Count trailing zeros in a word.

byteSwap16# :: Word# -> Word# Source

Swap bytes in the lower 16 bits of a word. The higher bytes are undefined.

byteSwap32# :: Word# -> Word# Source

Swap bytes in the lower 32 bits of a word. The higher bytes are undefined.

byteSwap64# :: Word# -> Word# Source

Swap bytes in a 64 bits of a word.

byteSwap# :: Word# -> Word# Source

Swap bytes in a word.

narrow8Int# :: Int# -> Int# Source

narrow16Int# :: Int# -> Int# Source

narrow32Int# :: Int# -> Int# Source

narrow8Word# :: Word# -> Word# Source

narrow16Word# :: Word# -> Word# Source

narrow32Word# :: Word# -> Word# Source

(>##) :: Double# -> Double# -> Int# infix 4 Source

(>=##) :: Double# -> Double# -> Int# infix 4 Source

(==##) :: Double# -> Double# -> Int# infix 4 Source

(/=##) :: Double# -> Double# -> Int# infix 4 Source

(<##) :: Double# -> Double# -> Int# infix 4 Source

(<=##) :: Double# -> Double# -> Int# infix 4 Source

(+##) :: Double# -> Double# -> Double# infixl 6 Source

(-##) :: Double# -> Double# -> Double# infixl 6 Source

(*##) :: Double# -> Double# -> Double# infixl 7 Source

(/##) :: Double# -> Double# -> Double# infixl 7 Source

negateDouble# :: Double# -> Double# Source

fabsDouble# :: Double# -> Double# Source

double2Int# :: Double# -> Int# Source

Truncates a Double# value to the nearest Int#. Results are undefined if the truncation if truncation yields a value outside the range of Int#.

double2Float# :: Double# -> Float# Source

expDouble# :: Double# -> Double# Source

logDouble# :: Double# -> Double# Source

sqrtDouble# :: Double# -> Double# Source

sinDouble# :: Double# -> Double# Source

cosDouble# :: Double# -> Double# Source

tanDouble# :: Double# -> Double# Source

asinDouble# :: Double# -> Double# Source

acosDouble# :: Double# -> Double# Source

atanDouble# :: Double# -> Double# Source

sinhDouble# :: Double# -> Double# Source

coshDouble# :: Double# -> Double# Source

tanhDouble# :: Double# -> Double# Source

(**##) :: Double# -> Double# -> Double# Source

Exponentiation.

decodeDouble_2Int# :: Double# -> (#Int#, Word#, Word#, Int##) Source

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_Int64# :: Double# -> (#Int#, Int##) Source

Decode Double# into mantissa and base-2 exponent.

gtFloat# :: Float# -> Float# -> Int# Source

geFloat# :: Float# -> Float# -> Int# Source

eqFloat# :: Float# -> Float# -> Int# Source

neFloat# :: Float# -> Float# -> Int# Source

ltFloat# :: Float# -> Float# -> Int# Source

leFloat# :: Float# -> Float# -> Int# Source

plusFloat# :: Float# -> Float# -> Float# Source

minusFloat# :: Float# -> Float# -> Float# Source

timesFloat# :: Float# -> Float# -> Float# Source

divideFloat# :: Float# -> Float# -> Float# Source

negateFloat# :: Float# -> Float# Source

fabsFloat# :: Float# -> Float# Source

float2Int# :: Float# -> Int# Source

Truncates a Float# value to the nearest Int#. Results are undefined if the truncation if truncation yields a value outside the range of Int#.

expFloat# :: Float# -> Float# Source

logFloat# :: Float# -> Float# Source

sqrtFloat# :: Float# -> Float# Source

sinFloat# :: Float# -> Float# Source

cosFloat# :: Float# -> Float# Source

tanFloat# :: Float# -> Float# Source

asinFloat# :: Float# -> Float# Source

acosFloat# :: Float# -> Float# Source

atanFloat# :: Float# -> Float# Source

sinhFloat# :: Float# -> Float# Source

coshFloat# :: Float# -> Float# Source

tanhFloat# :: Float# -> Float# Source

powerFloat# :: Float# -> Float# -> Float# Source

float2Double# :: Float# -> Double# Source

decodeFloat_Int# :: Float# -> (#Int#, Int##) Source

Convert to integers. First Int# in result is the mantissa; second is the exponent.

newArray# :: Int# -> a -> State# d -> (#State# d, MutableArray# d a#) Source

Create a new mutable array with the specified number of elements, in the specified state thread, with each element containing the specified initial value.

sameMutableArray# :: MutableArray# d a -> MutableArray# d a -> Int# Source

readArray# :: MutableArray# d a -> Int# -> State# d -> (#State# d, a#) Source

Read from specified index of mutable array. Result is not yet evaluated.

writeArray# :: MutableArray# d a -> Int# -> a -> State# d -> State# d Source

Write to specified index of mutable array.

sizeofArray# :: Array# a -> Int# Source

Return the number of elements in the array.

sizeofMutableArray# :: MutableArray# d a -> Int# Source

Return the number of elements in the array.

indexArray# :: Array# a -> Int# -> (#a#) Source

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.

unsafeFreezeArray# :: MutableArray# d a -> State# d -> (#State# d, Array# a#) Source

Make a mutable array immutable, without copying.

unsafeThawArray# :: Array# a -> State# d -> (#State# d, MutableArray# d a#) Source

Make an immutable array mutable, without copying.

copyArray# :: Array# a -> Int# -> MutableArray# d a -> Int# -> Int# -> State# d -> State# d Source

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.

copyMutableArray# :: MutableArray# d a -> Int# -> MutableArray# d a -> Int# -> Int# -> State# d -> State# d Source

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.

cloneArray# :: Array# a -> Int# -> Int# -> Array# a Source

Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.

cloneMutableArray# :: MutableArray# d a -> Int# -> Int# -> State# d -> (#State# d, MutableArray# d a#) Source

Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.

freezeArray# :: MutableArray# d a -> Int# -> Int# -> State# d -> (#State# d, Array# a#) Source

Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.

thawArray# :: Array# a -> Int# -> Int# -> State# d -> (#State# d, MutableArray# d a#) Source

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.

casArray# :: MutableArray# d a -> Int# -> a -> a -> State# d -> (#State# d, Int#, a#) Source

Unsafe, machine-level atomic compare and swap on an element within an Array.

newSmallArray# :: Int# -> a -> State# d -> (#State# d, SmallMutableArray# d a#) Source

Create a new mutable array with the specified number of elements, in the specified state thread, with each element containing the specified initial value.

sameSmallMutableArray# :: SmallMutableArray# d a -> SmallMutableArray# d a -> Int# Source

readSmallArray# :: SmallMutableArray# d a -> Int# -> State# d -> (#State# d, a#) Source

Read from specified index of mutable array. Result is not yet evaluated.

writeSmallArray# :: SmallMutableArray# d a -> Int# -> a -> State# d -> State# d Source

Write to specified index of mutable array.

sizeofSmallArray# :: SmallArray# a -> Int# Source

Return the number of elements in the array.

sizeofSmallMutableArray# :: SmallMutableArray# d a -> Int# Source

Return the number of elements in the array.

indexSmallArray# :: SmallArray# a -> Int# -> (#a#) Source

Read from specified index of immutable array. Result is packaged into an unboxed singleton; the result itself is not yet evaluated.

unsafeFreezeSmallArray# :: SmallMutableArray# d a -> State# d -> (#State# d, SmallArray# a#) Source

Make a mutable array immutable, without copying.

unsafeThawSmallArray# :: SmallArray# a -> State# d -> (#State# d, SmallMutableArray# d a#) Source

Make an immutable array mutable, without copying.

copySmallArray# :: SmallArray# a -> Int# -> SmallMutableArray# d a -> Int# -> Int# -> State# d -> State# d Source

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.

copySmallMutableArray# :: SmallMutableArray# d a -> Int# -> SmallMutableArray# d a -> Int# -> Int# -> State# d -> State# d Source

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.

cloneSmallArray# :: SmallArray# a -> Int# -> Int# -> SmallArray# a Source

Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.

cloneSmallMutableArray# :: SmallMutableArray# d a -> Int# -> Int# -> State# d -> (#State# d, SmallMutableArray# d a#) Source

Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.

freezeSmallArray# :: SmallMutableArray# d a -> Int# -> Int# -> State# d -> (#State# d, SmallArray# a#) Source

Given a source array, an offset into the source array, and a number of elements to copy, create a new array with the elements from the source array. The provided array must fully contain the specified range, but this is not checked.

thawSmallArray# :: SmallArray# a -> Int# -> Int# -> State# d -> (#State# d, SmallMutableArray# d a#) Source

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.

casSmallArray# :: SmallMutableArray# d a -> Int# -> a -> a -> State# d -> (#State# d, Int#, a#) Source

Unsafe, machine-level atomic compare and swap on an element within an array.

newByteArray# :: Int# -> State# d -> (#State# d, MutableByteArray# d#) Source

Create a new mutable byte array of specified size (in bytes), in the specified state thread.

newPinnedByteArray# :: Int# -> State# d -> (#State# d, MutableByteArray# d#) Source

Create a mutable byte array that the GC guarantees not to move.

newAlignedPinnedByteArray# :: Int# -> Int# -> State# d -> (#State# d, MutableByteArray# d#) Source

Create a mutable byte array, aligned by the specified amount, that the GC guarantees not to move.

isMutableByteArrayPinned# :: MutableByteArray# d -> Int# Source

Determine whether a MutableByteArray# is guaranteed not to move during GC.

isByteArrayPinned# :: ByteArray# -> Int# Source

Determine whether a ByteArray# is guaranteed not to move during GC.

byteArrayContents# :: ByteArray# -> Addr# Source

Intended for use with pinned arrays; otherwise very unsafe!

sameMutableByteArray# :: MutableByteArray# d -> MutableByteArray# d -> Int# Source

shrinkMutableByteArray# :: MutableByteArray# d -> Int# -> State# d -> State# d Source

Shrink mutable byte array to new specified size (in bytes), in the specified state thread. The new size argument must be less than or equal to the current size as reported by sizeofMutableArray#.

resizeMutableByteArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, MutableByteArray# d#) Source

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.

unsafeFreezeByteArray# :: MutableByteArray# d -> State# d -> (#State# d, ByteArray##) Source

Make a mutable byte array immutable, without copying.

sizeofByteArray# :: ByteArray# -> Int# Source

Return the size of the array in bytes.

sizeofMutableByteArray# :: MutableByteArray# d -> Int# Source

Return the size of the array in bytes. Note that this is deprecated as it is unsafe in the presence of concurrent resize operations on the same byte array. See getSizeofMutableByteArray.

getSizeofMutableByteArray# :: MutableByteArray# d -> State# d -> (#State# d, Int##) Source

Return the number of elements in the array.

indexCharArray# :: ByteArray# -> Int# -> Char# Source

Read 8-bit character; offset in bytes.

indexWideCharArray# :: ByteArray# -> Int# -> Char# Source

Read 31-bit character; offset in 4-byte words.

indexIntArray# :: ByteArray# -> Int# -> Int# Source

indexWordArray# :: ByteArray# -> Int# -> Word# Source

indexAddrArray# :: ByteArray# -> Int# -> Addr# Source

indexFloatArray# :: ByteArray# -> Int# -> Float# Source

indexDoubleArray# :: ByteArray# -> Int# -> Double# Source

indexStablePtrArray# :: ByteArray# -> Int# -> StablePtr# a Source

indexInt8Array# :: ByteArray# -> Int# -> Int# Source

Read 8-bit integer; offset in bytes.

indexInt16Array# :: ByteArray# -> Int# -> Int# Source

Read 16-bit integer; offset in 16-bit words.

indexInt32Array# :: ByteArray# -> Int# -> Int# Source

Read 32-bit integer; offset in 32-bit words.

indexInt64Array# :: ByteArray# -> Int# -> Int# Source

Read 64-bit integer; offset in 64-bit words.

indexWord8Array# :: ByteArray# -> Int# -> Word# Source

Read 8-bit word; offset in bytes.

indexWord16Array# :: ByteArray# -> Int# -> Word# Source

Read 16-bit word; offset in 16-bit words.

indexWord32Array# :: ByteArray# -> Int# -> Word# Source

Read 32-bit word; offset in 32-bit words.

indexWord64Array# :: ByteArray# -> Int# -> Word# Source

Read 64-bit word; offset in 64-bit words.

indexWord8ArrayAsChar# :: ByteArray# -> Int# -> Char# Source

Read 8-bit character; offset in bytes.

indexWord8ArrayAsWideChar# :: ByteArray# -> Int# -> Char# Source

Read 31-bit character; offset in bytes.

indexWord8ArrayAsAddr# :: ByteArray# -> Int# -> Addr# Source

Read address; offset in bytes.

indexWord8ArrayAsFloat# :: ByteArray# -> Int# -> Float# Source

Read float; offset in bytes.

indexWord8ArrayAsDouble# :: ByteArray# -> Int# -> Double# Source

Read double; offset in bytes.

indexWord8ArrayAsStablePtr# :: ByteArray# -> Int# -> StablePtr# a Source

Read stable pointer; offset in bytes.

indexWord8ArrayAsInt16# :: ByteArray# -> Int# -> Int# Source

Read 16-bit int; offset in bytes.

indexWord8ArrayAsInt32# :: ByteArray# -> Int# -> Int# Source

Read 32-bit int; offset in bytes.

indexWord8ArrayAsInt64# :: ByteArray# -> Int# -> Int# Source

Read 64-bit int; offset in bytes.

indexWord8ArrayAsInt# :: ByteArray# -> Int# -> Int# Source

Read int; offset in bytes.

indexWord8ArrayAsWord16# :: ByteArray# -> Int# -> Word# Source

Read 16-bit word; offset in bytes.

indexWord8ArrayAsWord32# :: ByteArray# -> Int# -> Word# Source

Read 32-bit word; offset in bytes.

indexWord8ArrayAsWord64# :: ByteArray# -> Int# -> Word# Source

Read 64-bit word; offset in bytes.

indexWord8ArrayAsWord# :: ByteArray# -> Int# -> Word# Source

Read word; offset in bytes.

readCharArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Char##) Source

Read 8-bit character; offset in bytes.

readWideCharArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Char##) Source

Read 31-bit character; offset in 4-byte words.

readIntArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

Read integer; offset in words.

readWordArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word##) Source

Read word; offset in words.

readAddrArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Addr##) Source

readFloatArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Float##) Source

readDoubleArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Double##) Source

readStablePtrArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, StablePtr# a#) Source

readInt8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

readInt16Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

readInt32Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

readInt64Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

readWord8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word##) Source

readWord16Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word##) Source

readWord32Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word##) Source

readWord64Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word##) Source

readWord8ArrayAsChar# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Char##) Source

readWord8ArrayAsWideChar# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Char##) Source

readWord8ArrayAsAddr# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Addr##) Source

readWord8ArrayAsFloat# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Float##) Source

readWord8ArrayAsDouble# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Double##) Source

readWord8ArrayAsStablePtr# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, StablePtr# a#) Source

readWord8ArrayAsInt16# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

readWord8ArrayAsInt32# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

readWord8ArrayAsInt64# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

readWord8ArrayAsInt# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

readWord8ArrayAsWord16# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word##) Source

readWord8ArrayAsWord32# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word##) Source

readWord8ArrayAsWord64# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word##) Source

readWord8ArrayAsWord# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word##) Source

writeCharArray# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d Source

Write 8-bit character; offset in bytes.

writeWideCharArray# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d Source

Write 31-bit character; offset in 4-byte words.

writeIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

writeWordArray# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source

writeAddrArray# :: MutableByteArray# d -> Int# -> Addr# -> State# d -> State# d Source

writeFloatArray# :: MutableByteArray# d -> Int# -> Float# -> State# d -> State# d Source

writeDoubleArray# :: MutableByteArray# d -> Int# -> Double# -> State# d -> State# d Source

writeStablePtrArray# :: MutableByteArray# d -> Int# -> StablePtr# a -> State# d -> State# d Source

writeInt8Array# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

writeInt16Array# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

writeInt32Array# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

writeInt64Array# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

writeWord8Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source

writeWord16Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source

writeWord32Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source

writeWord64Array# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source

writeWord8ArrayAsChar# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d Source

writeWord8ArrayAsWideChar# :: MutableByteArray# d -> Int# -> Char# -> State# d -> State# d Source

writeWord8ArrayAsAddr# :: MutableByteArray# d -> Int# -> Addr# -> State# d -> State# d Source

writeWord8ArrayAsFloat# :: MutableByteArray# d -> Int# -> Float# -> State# d -> State# d Source

writeWord8ArrayAsDouble# :: MutableByteArray# d -> Int# -> Double# -> State# d -> State# d Source

writeWord8ArrayAsStablePtr# :: MutableByteArray# d -> Int# -> StablePtr# a -> State# d -> State# d Source

writeWord8ArrayAsInt16# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

writeWord8ArrayAsInt32# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

writeWord8ArrayAsInt64# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

writeWord8ArrayAsInt# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

writeWord8ArrayAsWord16# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source

writeWord8ArrayAsWord32# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source

writeWord8ArrayAsWord64# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source

writeWord8ArrayAsWord# :: MutableByteArray# d -> Int# -> Word# -> State# d -> State# d Source

compareByteArrays# :: ByteArray# -> Int# -> ByteArray# -> Int# -> Int# -> Int# Source

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.

copyByteArray# :: ByteArray# -> Int# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

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.

copyMutableByteArray# :: MutableByteArray# d -> Int# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

Copy a range of the first 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.

copyByteArrayToAddr# :: ByteArray# -> Int# -> Addr# -> Int# -> State# d -> State# d Source

Copy a range of the ByteArray. The ByteArray must fully contain the specified ranges, but this is not checked. The Addr# must not point into the ByteArray were pinned), but this is not checked either.

copyMutableByteArrayToAddr# :: MutableByteArray# d -> Int# -> Addr# -> Int# -> State# d -> State# d Source

Copy a range of the MutableByteArray# to the memory range starting at the Addr 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 were pinned), but this is not checked either.

copyAddrToByteArray# :: Addr# -> MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

Copy a memory range starting at the Addr# to the specified range in the MutableByteArray and the ByteArray# must fully contain the specified ranges, but this is not checked. The Addr# must not point into the MutableByteArray were pinned), but this is not checked either.

setByteArray# :: MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> State# d Source

setByteArray# ba off len c sets the byte range [off, off+len] of the MutableByteArray# to the byte c.

atomicReadIntArray# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int##) Source

Given an array and an offset in Int units, read an element. The index is assumed to be in bounds. Implies a full memory barrier.

atomicWriteIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> State# d Source

Given an array and an offset in Int units, write an element. The index is assumed to be in bounds. Implies a full memory barrier.

casIntArray# :: MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> (#State# d, Int##) Source

Given an array, an offset in Int units, the expected old value, and the new value, perform an atomic compare and swap i.e. write the new value if the current value matches the provided old value. Returns the value of the element before the operation. Implies a full memory barrier.

fetchAddIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (#State# d, Int##) Source

Given an array, and offset in Int units, and a value to add, atomically add the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.

fetchSubIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (#State# d, Int##) Source

Given an array, and offset in Int units, and a value to subtract, atomically substract the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.

fetchAndIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (#State# d, Int##) Source

Given an array, and offset in Int units, and a value to AND, atomically AND the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.

fetchNandIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (#State# d, Int##) Source

Given an array, and offset in Int units, and a value to NAND, atomically NAND the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.

fetchOrIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (#State# d, Int##) Source

Given an array, and offset in Int units, and a value to OR, atomically OR the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.

fetchXorIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (#State# d, Int##) Source

Given an array, and offset in Int units, and a value to XOR, atomically XOR the value to the element. Returns the value of the element before the operation. Implies a full memory barrier.

newArrayArray# :: Int# -> State# d -> (#State# d, MutableArrayArray# d#) Source

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.

sameMutableArrayArray# :: MutableArrayArray# d -> MutableArrayArray# d -> Int# Source

unsafeFreezeArrayArray# :: MutableArrayArray# d -> State# d -> (#State# d, ArrayArray##) Source

Make a mutable array of arrays immutable, without copying.

sizeofArrayArray# :: ArrayArray# -> Int# Source

Return the number of elements in the array.

sizeofMutableArrayArray# :: MutableArrayArray# d -> Int# Source

Return the number of elements in the array.

indexByteArrayArray# :: ArrayArray# -> Int# -> ByteArray# Source

indexArrayArrayArray# :: ArrayArray# -> Int# -> ArrayArray# Source

readByteArrayArray# :: MutableArrayArray# d -> Int# -> State# d -> (#State# d, ByteArray##) Source

readMutableByteArrayArray# :: MutableArrayArray# d -> Int# -> State# d -> (#State# d, MutableByteArray# d#) Source

readArrayArrayArray# :: MutableArrayArray# d -> Int# -> State# d -> (#State# d, ArrayArray##) Source

readMutableArrayArrayArray# :: MutableArrayArray# d -> Int# -> State# d -> (#State# d, MutableArrayArray# d#) Source

writeByteArrayArray# :: MutableArrayArray# d -> Int# -> ByteArray# -> State# d -> State# d Source

writeMutableByteArrayArray# :: MutableArrayArray# d -> Int# -> MutableByteArray# d -> State# d -> State# d Source

writeArrayArrayArray# :: MutableArrayArray# d -> Int# -> ArrayArray# -> State# d -> State# d Source

writeMutableArrayArrayArray# :: MutableArrayArray# d -> Int# -> MutableArrayArray# d -> State# d -> State# d Source

copyArrayArray# :: ArrayArray# -> Int# -> MutableArrayArray# d -> Int# -> Int# -> State# d -> State# d Source

Copy a range of the ArrayArray. 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.

copyMutableArrayArray# :: MutableArrayArray# d -> Int# -> MutableArrayArray# d -> Int# -> Int# -> State# d -> State# d Source

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.

plusAddr# :: Addr# -> Int# -> Addr# Source

minusAddr# :: Addr# -> Addr# -> Int# Source

Result is meaningless if two Addr#s are so far apart that their difference doesn't fit in an Int#.

remAddr# :: Addr# -> Int# -> Int# Source

Return the remainder when the Addr# arg, treated like an Int#, is divided by the Int# arg.

addr2Int# :: Addr# -> Int# Source

Coerce directly from address to int. Strongly deprecated.

int2Addr# :: Int# -> Addr# Source

Coerce directly from int to address. Strongly deprecated.

gtAddr# :: Addr# -> Addr# -> Int# Source

geAddr# :: Addr# -> Addr# -> Int# Source

eqAddr# :: Addr# -> Addr# -> Int# Source

neAddr# :: Addr# -> Addr# -> Int# Source

ltAddr# :: Addr# -> Addr# -> Int# Source

leAddr# :: Addr# -> Addr# -> Int# Source

indexCharOffAddr# :: Addr# -> Int# -> Char# Source

Reads 8-bit character; offset in bytes.

indexWideCharOffAddr# :: Addr# -> Int# -> Char# Source

Reads 31-bit character; offset in 4-byte words.

indexIntOffAddr# :: Addr# -> Int# -> Int# Source

indexWordOffAddr# :: Addr# -> Int# -> Word# Source

indexAddrOffAddr# :: Addr# -> Int# -> Addr# Source

indexFloatOffAddr# :: Addr# -> Int# -> Float# Source

indexDoubleOffAddr# :: Addr# -> Int# -> Double# Source

indexStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a Source

indexInt8OffAddr# :: Addr# -> Int# -> Int# Source

indexInt16OffAddr# :: Addr# -> Int# -> Int# Source

indexInt32OffAddr# :: Addr# -> Int# -> Int# Source

indexInt64OffAddr# :: Addr# -> Int# -> Int# Source

indexWord8OffAddr# :: Addr# -> Int# -> Word# Source

indexWord16OffAddr# :: Addr# -> Int# -> Word# Source

indexWord32OffAddr# :: Addr# -> Int# -> Word# Source

indexWord64OffAddr# :: Addr# -> Int# -> Word# Source

readCharOffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Char##) Source

Reads 8-bit character; offset in bytes.

readWideCharOffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Char##) Source

Reads 31-bit character; offset in 4-byte words.

readIntOffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int##) Source

readWordOffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word##) Source

readAddrOffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Addr##) Source

readFloatOffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Float##) Source

readDoubleOffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Double##) Source

readStablePtrOffAddr# :: Addr# -> Int# -> State# d -> (#State# d, StablePtr# a#) Source

readInt8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int##) Source

readInt16OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int##) Source

readInt32OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int##) Source

readInt64OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int##) Source

readWord8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word##) Source

readWord16OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word##) Source

readWord32OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word##) Source

readWord64OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word##) Source

writeCharOffAddr# :: Addr# -> Int# -> Char# -> State# d -> State# d Source

writeWideCharOffAddr# :: Addr# -> Int# -> Char# -> State# d -> State# d Source

writeIntOffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d Source

writeWordOffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d Source

writeAddrOffAddr# :: Addr# -> Int# -> Addr# -> State# d -> State# d Source

writeFloatOffAddr# :: Addr# -> Int# -> Float# -> State# d -> State# d Source

writeDoubleOffAddr# :: Addr# -> Int# -> Double# -> State# d -> State# d Source

writeStablePtrOffAddr# :: Addr# -> Int# -> StablePtr# a -> State# d -> State# d Source

writeInt8OffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d Source

writeInt16OffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d Source

writeInt32OffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d Source

writeInt64OffAddr# :: Addr# -> Int# -> Int# -> State# d -> State# d Source

writeWord8OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d Source

writeWord16OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d Source

writeWord32OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d Source

writeWord64OffAddr# :: Addr# -> Int# -> Word# -> State# d -> State# d Source

newMutVar# :: a -> State# d -> (#State# d, MutVar# d a#) Source

Create MutVar# with specified initial value in specified state thread.

readMutVar# :: MutVar# d a -> State# d -> (#State# d, a#) Source

Read contents of MutVar#. Result is not yet evaluated.

writeMutVar# :: MutVar# d a -> a -> State# d -> State# d Source

Write contents of MutVar#.

sameMutVar# :: MutVar# d a -> MutVar# d a -> Int# Source

atomicModifyMutVar# :: MutVar# d a -> (a -> b) -> State# d -> (#State# d, c#) Source

Modify the contents of a MutVar#. Note that this isn't strictly speaking the correct type for this function, it should really be MutVar s -> ( s, b #), however we don't know about pairs here.

casMutVar# :: MutVar# d a -> a -> a -> State# d -> (#State# d, Int#, a#) Source

catch# :: (State# RealWorld -> (#State# RealWorld, a#)) -> (b -> State# RealWorld -> (#State# RealWorld, a#)) -> State# RealWorld -> (#State# RealWorld, a#) Source

raise# :: b -> a Source

raiseIO# :: a -> State# RealWorld -> (#State# RealWorld, b#) Source

maskAsyncExceptions# :: (State# RealWorld -> (#State# RealWorld, a#)) -> State# RealWorld -> (#State# RealWorld, a#) Source

maskUninterruptible# :: (State# RealWorld -> (#State# RealWorld, a#)) -> State# RealWorld -> (#State# RealWorld, a#) Source

unmaskAsyncExceptions# :: (State# RealWorld -> (#State# RealWorld, a#)) -> State# RealWorld -> (#State# RealWorld, a#) Source

getMaskingState# :: State# RealWorld -> (#State# RealWorld, Int##) Source

atomically# :: (State# RealWorld -> (#State# RealWorld, a#)) -> State# RealWorld -> (#State# RealWorld, a#) Source

retry# :: State# RealWorld -> (#State# RealWorld, a#) Source

catchRetry# :: (State# RealWorld -> (#State# RealWorld, a#)) -> (State# RealWorld -> (#State# RealWorld, a#)) -> State# RealWorld -> (#State# RealWorld, a#) Source

catchSTM# :: (State# RealWorld -> (#State# RealWorld, a#)) -> (b -> State# RealWorld -> (#State# RealWorld, a#)) -> State# RealWorld -> (#State# RealWorld, a#) Source

newTVar# :: a -> State# d -> (#State# d, TVar# d a#) Source

Create a new TVar# holding a specified initial value.

readTVar# :: TVar# d a -> State# d -> (#State# d, a#) Source

Read contents of TVar#. Result is not yet evaluated.

readTVarIO# :: TVar# d a -> State# d -> (#State# d, a#) Source

Read contents of TVar# outside an STM transaction

writeTVar# :: TVar# d a -> a -> State# d -> State# d Source

Write contents of TVar#.

sameTVar# :: TVar# d a -> TVar# d a -> Int# Source

newMVar# :: State# d -> (#State# d, MVar# d a#) Source

Create new MVar#; initially empty.

takeMVar# :: MVar# d a -> State# d -> (#State# d, a#) Source

If MVar# is empty, block until it becomes full. Then remove and return its contents, and set it empty.

tryTakeMVar# :: MVar# d a -> State# d -> (#State# d, Int#, a#) Source

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.

putMVar# :: MVar# d a -> a -> State# d -> State# d Source

If MVar# is full, block until it becomes empty. Then store value arg as its new contents.

tryPutMVar# :: MVar# d a -> a -> State# d -> (#State# d, Int##) Source

If MVar# is full, immediately return with integer 0. Otherwise, store value arg as MVar#'s new contents, and return with integer 1.

readMVar# :: MVar# d a -> State# d -> (#State# d, a#) Source

If MVar# is empty, block until it becomes full. Then read its contents without modifying the MVar, without possibility of intervention from other threads.

tryReadMVar# :: MVar# d a -> State# d -> (#State# d, Int#, a#) Source

If MVar# is empty, immediately return with integer 0 and value undefined. Otherwise, return with integer 1 and contents of MVar#.

sameMVar# :: MVar# d a -> MVar# d a -> Int# Source

isEmptyMVar# :: MVar# d a -> State# d -> (#State# d, Int##) Source

Return 1 if MVar# is empty; 0 otherwise.

delay# :: Int# -> State# d -> State# d Source

Sleep specified number of microseconds.

waitRead# :: Int# -> State# d -> State# d Source

Block until input is available on specified file descriptor.

waitWrite# :: Int# -> State# d -> State# d Source

Block until output is possible on specified file descriptor.

fork# :: a -> State# RealWorld -> (#State# RealWorld, ThreadId##) Source

forkOn# :: Int# -> a -> State# RealWorld -> (#State# RealWorld, ThreadId##) Source

killThread# :: ThreadId# -> a -> State# RealWorld -> State# RealWorld Source

yield# :: State# RealWorld -> State# RealWorld Source

myThreadId# :: State# RealWorld -> (#State# RealWorld, ThreadId##) Source

labelThread# :: ThreadId# -> Addr# -> State# RealWorld -> State# RealWorld Source

isCurrentThreadBound# :: State# RealWorld -> (#State# RealWorld, Int##) Source

noDuplicate# :: State# d -> State# d Source

threadStatus# :: ThreadId# -> State# RealWorld -> (#State# RealWorld, Int#, Int#, Int##) Source

mkWeak# :: a -> b -> (State# RealWorld -> (#State# RealWorld, c#)) -> State# RealWorld -> (#State# RealWorld, Weak# b#) Source

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

mkWeakNoFinalizer# :: a -> b -> State# RealWorld -> (#State# RealWorld, Weak# b#) Source

addCFinalizerToWeak# :: Addr# -> Addr# -> Int# -> Addr# -> Weak# b -> State# RealWorld -> (#State# RealWorld, Int##) Source

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.

deRefWeak# :: Weak# a -> State# RealWorld -> (#State# RealWorld, Int#, a#) Source

finalizeWeak# :: Weak# a -> State# RealWorld -> (#State# RealWorld, Int#, State# RealWorld -> (#State# RealWorld, b#)#) Source

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.

touch# :: a -> State# RealWorld -> State# RealWorld Source

makeStablePtr# :: a -> State# RealWorld -> (#State# RealWorld, StablePtr# a#) Source

deRefStablePtr# :: StablePtr# a -> State# RealWorld -> (#State# RealWorld, a#) Source

eqStablePtr# :: StablePtr# a -> StablePtr# a -> Int# Source

makeStableName# :: a -> State# RealWorld -> (#State# RealWorld, StableName# a#) Source

eqStableName# :: StableName# a -> StableName# b -> Int# Source

stableNameToInt# :: StableName# a -> Int# Source

compactNew# :: Word# -> State# RealWorld -> (#State# RealWorld, Compact##) Source

Create a new Compact with the given size (in bytes, not words). The size is rounded up to a multiple of the allocator block size, and capped to one mega block.

compactResize# :: Compact# -> Word# -> State# RealWorld -> State# RealWorld Source

Set the new allocation size of the compact. This value (in bytes) determines the size of each block in the compact chain.

compactContains# :: Compact# -> a -> State# RealWorld -> (#State# RealWorld, Int##) Source

Returns 1 otherwise.

compactContainsAny# :: a -> State# RealWorld -> (#State# RealWorld, Int##) Source

Returns 1 otherwise.

compactGetFirstBlock# :: Compact# -> State# RealWorld -> (#State# RealWorld, Addr#, Word##) Source

Returns the address and the size (in bytes) of the first block of a compact.

compactGetNextBlock# :: Compact# -> Addr# -> State# RealWorld -> (#State# RealWorld, Addr#, Word##) Source

Given a compact and the address of one its blocks, returns the next block and its size, or #nullAddr if the argument was the last block in the compact.

compactAllocateBlock# :: Word# -> Addr# -> State# RealWorld -> (#State# RealWorld, Addr##) Source

Attempt to allocate a compact block with the given size (in bytes) at the given address. The first argument is a hint to the allocator, allocation might be satisfied at a different address (which is returned). The resulting block is not known to the GC until compactFixupPointers# is called on it, and care must be taken so that the address does not escape or memory will be leaked.

compactFixupPointers# :: Addr# -> Addr# -> State# RealWorld -> (#State# RealWorld, Compact#, Addr##) Source

Given the pointer to the first block of a compact, and the address of the root object in the old address space, fix up the internal pointers inside the compact to account for a different position in memory than when it was serialized. This method must be called exactly once after importing a serialized compact, and returns the new compact and the new adjusted root address.

compactAdd# :: Compact# -> a -> State# RealWorld -> (#State# RealWorld, a#) Source

Recursively add a closure and its transitive closure to a {texttt Compact#}, evaluating any unevaluated components at the same time. Note: {texttt compactAdd#} is not thread-safe, so only one thread may call {texttt compactAdd#} with a particular {texttt Compact#} at any given time. The primop does not enforce any mutual exclusion; the caller is expected to arrange this.

compactAddWithSharing# :: Compact# -> a -> State# RealWorld -> (#State# RealWorld, a#) Source

Like {texttt compactAdd#}, but retains sharing and cycles during compaction.

compactSize# :: Compact# -> State# RealWorld -> (#State# RealWorld, Word##) Source

Return the size (in bytes) of the total amount of data in the Compact#

reallyUnsafePtrEquality# :: a -> a -> Int# Source

Returns {texttt 1#} if the given pointers are equal and {texttt 0#} otherwise.

par# :: a -> Int# Source

spark# :: a -> State# d -> (#State# d, a#) Source

seq# :: a -> State# d -> (#State# d, a#) Source

getSpark# :: State# d -> (#State# d, Int#, a#) Source

numSparks# :: State# d -> (#State# d, Int##) Source

Returns the number of sparks in the local spark pool.

dataToTag# :: a -> Int# Source

tagToEnum# :: Int# -> a Source

  • Note [dataToTag#] ~~~~~~~~~~~~~~~~~~~~ The dataToTag# primop should always be applied to an evaluated argument. The way to ensure this is to invoke it via the 'getTag' wrapper in GHC.Base: getTag :: a -> Int# getTag !x = dataToTag# x

But now consider z. case x of y -> let v = dataToTag# y in ...

To improve floating, the FloatOut pass (deliberately) does a binder-swap on the case, to give z. case x of y -> let v = dataToTag# x in ...

Now FloatOut might float that v-binding outside the z. But that is bad because that might mean x gets evaluated much too early! (CorePrep adds an eval to a dataToTag# call, to ensure that the argument really is evaluated; see CorePrep Note [dataToTag magic].)

Solution: make DataToTag into a can_fail primop. That will stop it floating (see Note [PrimOp can_fail and has_side_effects] in PrimOp). It's a bit of a hack but never mind. -

addrToAny# :: Addr# -> (#a#) Source

Convert an Addr# to a followable Any type.

anyToAddr# :: a -> State# RealWorld -> (#State# RealWorld, Addr##) Source

Retrieve the address of any Haskell value. This is essentially an {texttt unsafeCoerce#}, but if implemented as such the core lint pass complains and fails to compile. As a primop, it is opaque to core/stg, and only appears in cmm (where the copy propagation pass will get rid of it). Note that "a" must be a value, not a thunk! It's too late for strictness analysis to enforce this, so you're on your own to guarantee this. Also note that {texttt Addr#} is not a GC pointer - up to you to guarantee that it does not become a dangling pointer immediately after you get it.

mkApUpd0# :: BCO# -> (#a#) Source

Wrap a BCO in a AP_UPD thunk which will be updated with the value of the BCO when evaluated.

newBCO# :: ByteArray# -> ByteArray# -> Array# a -> Int# -> ByteArray# -> State# d -> (#State# d, BCO##) Source

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.

unpackClosure# :: a -> (#Addr#, ByteArray#, Array# b#) Source

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.

getApStackVal# :: a -> Int# -> (#Int#, b#) Source

getCCSOf# :: a -> State# d -> (#State# d, Addr##) Source

getCurrentCCS# :: a -> State# d -> (#State# d, Addr##) Source

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").

clearCCS# :: (State# d -> (#State# d, a#)) -> State# d -> (#State# d, a#) Source

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.

traceEvent# :: Addr# -> State# d -> State# d Source

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.

traceMarker# :: Addr# -> State# d -> State# d Source

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.

getThreadAllocationCounter# :: State# RealWorld -> (#State# RealWorld, Int##) Source

Retrieves the allocation counter for the current thread.

setThreadAllocationCounter# :: Int# -> State# RealWorld -> State# RealWorld Source

Sets the allocation counter for the current thread to the given value.

broadcastInt8X16# :: Int# -> Int8X16# Source

Broadcast a scalar to all elements of a vector.

broadcastInt16X8# :: Int# -> Int16X8# Source

Broadcast a scalar to all elements of a vector.

broadcastInt32X4# :: Int# -> Int32X4# Source

Broadcast a scalar to all elements of a vector.

broadcastInt64X2# :: Int# -> Int64X2# Source

Broadcast a scalar to all elements of a vector.

broadcastInt8X32# :: Int# -> Int8X32# Source

Broadcast a scalar to all elements of a vector.

broadcastInt16X16# :: Int# -> Int16X16# Source

Broadcast a scalar to all elements of a vector.

broadcastInt32X8# :: Int# -> Int32X8# Source

Broadcast a scalar to all elements of a vector.

broadcastInt64X4# :: Int# -> Int64X4# Source

Broadcast a scalar to all elements of a vector.

broadcastInt8X64# :: Int# -> Int8X64# Source

Broadcast a scalar to all elements of a vector.

broadcastInt16X32# :: Int# -> Int16X32# Source

Broadcast a scalar to all elements of a vector.

broadcastInt32X16# :: Int# -> Int32X16# Source

Broadcast a scalar to all elements of a vector.

broadcastInt64X8# :: Int# -> Int64X8# Source

Broadcast a scalar to all elements of a vector.

broadcastWord8X16# :: Word# -> Word8X16# Source

Broadcast a scalar to all elements of a vector.

broadcastWord16X8# :: Word# -> Word16X8# Source

Broadcast a scalar to all elements of a vector.

broadcastWord32X4# :: Word# -> Word32X4# Source

Broadcast a scalar to all elements of a vector.

broadcastWord64X2# :: Word# -> Word64X2# Source

Broadcast a scalar to all elements of a vector.

broadcastWord8X32# :: Word# -> Word8X32# Source

Broadcast a scalar to all elements of a vector.

broadcastWord16X16# :: Word# -> Word16X16# Source

Broadcast a scalar to all elements of a vector.

broadcastWord32X8# :: Word# -> Word32X8# Source

Broadcast a scalar to all elements of a vector.

broadcastWord64X4# :: Word# -> Word64X4# Source

Broadcast a scalar to all elements of a vector.

broadcastWord8X64# :: Word# -> Word8X64# Source

Broadcast a scalar to all elements of a vector.

broadcastWord16X32# :: Word# -> Word16X32# Source

Broadcast a scalar to all elements of a vector.

broadcastWord32X16# :: Word# -> Word32X16# Source

Broadcast a scalar to all elements of a vector.

broadcastWord64X8# :: Word# -> Word64X8# Source

Broadcast a scalar to all elements of a vector.

broadcastFloatX4# :: Float# -> FloatX4# Source

Broadcast a scalar to all elements of a vector.

broadcastDoubleX2# :: Double# -> DoubleX2# Source

Broadcast a scalar to all elements of a vector.

broadcastFloatX8# :: Float# -> FloatX8# Source

Broadcast a scalar to all elements of a vector.

broadcastDoubleX4# :: Double# -> DoubleX4# Source

Broadcast a scalar to all elements of a vector.

broadcastFloatX16# :: Float# -> FloatX16# Source

Broadcast a scalar to all elements of a vector.

broadcastDoubleX8# :: Double# -> DoubleX8# Source

Broadcast a scalar to all elements of a vector.

packInt8X16# :: (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) -> Int8X16# Source

Pack the elements of an unboxed tuple into a vector.

packInt16X8# :: (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) -> Int16X8# Source

Pack the elements of an unboxed tuple into a vector.

packInt32X4# :: (#Int#, Int#, Int#, Int##) -> Int32X4# Source

Pack the elements of an unboxed tuple into a vector.

packInt64X2# :: (#Int#, Int##) -> Int64X2# Source

Pack the elements of an unboxed tuple into a vector.

packInt8X32# :: (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) -> Int8X32# Source

Pack the elements of an unboxed tuple into a vector.

packInt16X16# :: (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) -> Int16X16# Source

Pack the elements of an unboxed tuple into a vector.

packInt32X8# :: (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) -> Int32X8# Source

Pack the elements of an unboxed tuple into a vector.

packInt64X4# :: (#Int#, Int#, Int#, Int##) -> Int64X4# Source

Pack the elements of an unboxed tuple into a vector.

packInt8X64# :: (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) -> Int8X64# Source

Pack the elements of an unboxed tuple into a vector.

packInt16X32# :: (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) -> Int16X32# Source

Pack the elements of an unboxed tuple into a vector.

packInt32X16# :: (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) -> Int32X16# Source

Pack the elements of an unboxed tuple into a vector.

packInt64X8# :: (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) -> Int64X8# Source

Pack the elements of an unboxed tuple into a vector.

packWord8X16# :: (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) -> Word8X16# Source

Pack the elements of an unboxed tuple into a vector.

packWord16X8# :: (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) -> Word16X8# Source

Pack the elements of an unboxed tuple into a vector.

packWord32X4# :: (#Word#, Word#, Word#, Word##) -> Word32X4# Source

Pack the elements of an unboxed tuple into a vector.

packWord64X2# :: (#Word#, Word##) -> Word64X2# Source

Pack the elements of an unboxed tuple into a vector.

packWord8X32# :: (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) -> Word8X32# Source

Pack the elements of an unboxed tuple into a vector.

packWord16X16# :: (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) -> Word16X16# Source

Pack the elements of an unboxed tuple into a vector.

packWord32X8# :: (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) -> Word32X8# Source

Pack the elements of an unboxed tuple into a vector.

packWord64X4# :: (#Word#, Word#, Word#, Word##) -> Word64X4# Source

Pack the elements of an unboxed tuple into a vector.

packWord8X64# :: (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) -> Word8X64# Source

Pack the elements of an unboxed tuple into a vector.

packWord16X32# :: (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) -> Word16X32# Source

Pack the elements of an unboxed tuple into a vector.

packWord32X16# :: (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) -> Word32X16# Source

Pack the elements of an unboxed tuple into a vector.

packWord64X8# :: (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) -> Word64X8# Source

Pack the elements of an unboxed tuple into a vector.

packFloatX4# :: (#Float#, Float#, Float#, Float##) -> FloatX4# Source

Pack the elements of an unboxed tuple into a vector.

packDoubleX2# :: (#Double#, Double##) -> DoubleX2# Source

Pack the elements of an unboxed tuple into a vector.

packFloatX8# :: (#Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float##) -> FloatX8# Source

Pack the elements of an unboxed tuple into a vector.

packDoubleX4# :: (#Double#, Double#, Double#, Double##) -> DoubleX4# Source

Pack the elements of an unboxed tuple into a vector.

packFloatX16# :: (#Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float##) -> FloatX16# Source

Pack the elements of an unboxed tuple into a vector.

packDoubleX8# :: (#Double#, Double#, Double#, Double#, Double#, Double#, Double#, Double##) -> DoubleX8# Source

Pack the elements of an unboxed tuple into a vector.

unpackInt8X16# :: Int8X16# -> (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt16X8# :: Int16X8# -> (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt32X4# :: Int32X4# -> (#Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt64X2# :: Int64X2# -> (#Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt8X32# :: Int8X32# -> (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt16X16# :: Int16X16# -> (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt32X8# :: Int32X8# -> (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt64X4# :: Int64X4# -> (#Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt8X64# :: Int8X64# -> (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt16X32# :: Int16X32# -> (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt32X16# :: Int32X16# -> (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackInt64X8# :: Int64X8# -> (#Int#, Int#, Int#, Int#, Int#, Int#, Int#, Int##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord8X16# :: Word8X16# -> (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord16X8# :: Word16X8# -> (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord32X4# :: Word32X4# -> (#Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord64X2# :: Word64X2# -> (#Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord8X32# :: Word8X32# -> (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord16X16# :: Word16X16# -> (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord32X8# :: Word32X8# -> (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord64X4# :: Word64X4# -> (#Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord8X64# :: Word8X64# -> (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord16X32# :: Word16X32# -> (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord32X16# :: Word32X16# -> (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackWord64X8# :: Word64X8# -> (#Word#, Word#, Word#, Word#, Word#, Word#, Word#, Word##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackFloatX4# :: FloatX4# -> (#Float#, Float#, Float#, Float##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackDoubleX2# :: DoubleX2# -> (#Double#, Double##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackFloatX8# :: FloatX8# -> (#Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackDoubleX4# :: DoubleX4# -> (#Double#, Double#, Double#, Double##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackFloatX16# :: FloatX16# -> (#Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float#, Float##) Source

Unpack the elements of a vector into an unboxed tuple. #

unpackDoubleX8# :: DoubleX8# -> (#Double#, Double#, Double#, Double#, Double#, Double#, Double#, Double##) Source

Unpack the elements of a vector into an unboxed tuple. #

insertInt8X16# :: Int8X16# -> Int# -> Int# -> Int8X16# Source

Insert a scalar at the given position in a vector.

insertInt16X8# :: Int16X8# -> Int# -> Int# -> Int16X8# Source

Insert a scalar at the given position in a vector.

insertInt32X4# :: Int32X4# -> Int# -> Int# -> Int32X4# Source

Insert a scalar at the given position in a vector.

insertInt64X2# :: Int64X2# -> Int# -> Int# -> Int64X2# Source

Insert a scalar at the given position in a vector.

insertInt8X32# :: Int8X32# -> Int# -> Int# -> Int8X32# Source

Insert a scalar at the given position in a vector.

insertInt16X16# :: Int16X16# -> Int# -> Int# -> Int16X16# Source

Insert a scalar at the given position in a vector.

insertInt32X8# :: Int32X8# -> Int# -> Int# -> Int32X8# Source

Insert a scalar at the given position in a vector.

insertInt64X4# :: Int64X4# -> Int# -> Int# -> Int64X4# Source

Insert a scalar at the given position in a vector.

insertInt8X64# :: Int8X64# -> Int# -> Int# -> Int8X64# Source

Insert a scalar at the given position in a vector.

insertInt16X32# :: Int16X32# -> Int# -> Int# -> Int16X32# Source

Insert a scalar at the given position in a vector.

insertInt32X16# :: Int32X16# -> Int# -> Int# -> Int32X16# Source

Insert a scalar at the given position in a vector.

insertInt64X8# :: Int64X8# -> Int# -> Int# -> Int64X8# Source

Insert a scalar at the given position in a vector.

insertWord8X16# :: Word8X16# -> Word# -> Int# -> Word8X16# Source

Insert a scalar at the given position in a vector.

insertWord16X8# :: Word16X8# -> Word# -> Int# -> Word16X8# Source

Insert a scalar at the given position in a vector.

insertWord32X4# :: Word32X4# -> Word# -> Int# -> Word32X4# Source

Insert a scalar at the given position in a vector.

insertWord64X2# :: Word64X2# -> Word# -> Int# -> Word64X2# Source

Insert a scalar at the given position in a vector.

insertWord8X32# :: Word8X32# -> Word# -> Int# -> Word8X32# Source

Insert a scalar at the given position in a vector.

insertWord16X16# :: Word16X16# -> Word# -> Int# -> Word16X16# Source

Insert a scalar at the given position in a vector.

insertWord32X8# :: Word32X8# -> Word# -> Int# -> Word32X8# Source

Insert a scalar at the given position in a vector.

insertWord64X4# :: Word64X4# -> Word# -> Int# -> Word64X4# Source

Insert a scalar at the given position in a vector.

insertWord8X64# :: Word8X64# -> Word# -> Int# -> Word8X64# Source

Insert a scalar at the given position in a vector.

insertWord16X32# :: Word16X32# -> Word# -> Int# -> Word16X32# Source

Insert a scalar at the given position in a vector.

insertWord32X16# :: Word32X16# -> Word# -> Int# -> Word32X16# Source

Insert a scalar at the given position in a vector.

insertWord64X8# :: Word64X8# -> Word# -> Int# -> Word64X8# Source

Insert a scalar at the given position in a vector.

insertFloatX4# :: FloatX4# -> Float# -> Int# -> FloatX4# Source

Insert a scalar at the given position in a vector.

insertDoubleX2# :: DoubleX2# -> Double# -> Int# -> DoubleX2# Source

Insert a scalar at the given position in a vector.

insertFloatX8# :: FloatX8# -> Float# -> Int# -> FloatX8# Source

Insert a scalar at the given position in a vector.

insertDoubleX4# :: DoubleX4# -> Double# -> Int# -> DoubleX4# Source

Insert a scalar at the given position in a vector.

insertFloatX16# :: FloatX16# -> Float# -> Int# -> FloatX16# Source

Insert a scalar at the given position in a vector.

insertDoubleX8# :: DoubleX8# -> Double# -> Int# -> DoubleX8# Source

Insert a scalar at the given position in a vector.

plusInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source

Add two vectors element-wise.

plusInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source

Add two vectors element-wise.

plusInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source

Add two vectors element-wise.

plusInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source

Add two vectors element-wise.

plusInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source

Add two vectors element-wise.

plusInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source

Add two vectors element-wise.

plusInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source

Add two vectors element-wise.

plusInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source

Add two vectors element-wise.

plusInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source

Add two vectors element-wise.

plusInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source

Add two vectors element-wise.

plusInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source

Add two vectors element-wise.

plusInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source

Add two vectors element-wise.

plusWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source

Add two vectors element-wise.

plusWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source

Add two vectors element-wise.

plusWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source

Add two vectors element-wise.

plusWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source

Add two vectors element-wise.

plusWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source

Add two vectors element-wise.

plusWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source

Add two vectors element-wise.

plusWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source

Add two vectors element-wise.

plusWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source

Add two vectors element-wise.

plusWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source

Add two vectors element-wise.

plusWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source

Add two vectors element-wise.

plusWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source

Add two vectors element-wise.

plusWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source

Add two vectors element-wise.

plusFloatX4# :: FloatX4# -> FloatX4# -> FloatX4# Source

Add two vectors element-wise.

plusDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2# Source

Add two vectors element-wise.

plusFloatX8# :: FloatX8# -> FloatX8# -> FloatX8# Source

Add two vectors element-wise.

plusDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4# Source

Add two vectors element-wise.

plusFloatX16# :: FloatX16# -> FloatX16# -> FloatX16# Source

Add two vectors element-wise.

plusDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8# Source

Add two vectors element-wise.

minusInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source

Subtract two vectors element-wise.

minusInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source

Subtract two vectors element-wise.

minusInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source

Subtract two vectors element-wise.

minusInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source

Subtract two vectors element-wise.

minusInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source

Subtract two vectors element-wise.

minusInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source

Subtract two vectors element-wise.

minusInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source

Subtract two vectors element-wise.

minusInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source

Subtract two vectors element-wise.

minusInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source

Subtract two vectors element-wise.

minusInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source

Subtract two vectors element-wise.

minusInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source

Subtract two vectors element-wise.

minusInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source

Subtract two vectors element-wise.

minusWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source

Subtract two vectors element-wise.

minusWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source

Subtract two vectors element-wise.

minusWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source

Subtract two vectors element-wise.

minusWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source

Subtract two vectors element-wise.

minusWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source

Subtract two vectors element-wise.

minusWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source

Subtract two vectors element-wise.

minusWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source

Subtract two vectors element-wise.

minusWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source

Subtract two vectors element-wise.

minusWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source

Subtract two vectors element-wise.

minusWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source

Subtract two vectors element-wise.

minusWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source

Subtract two vectors element-wise.

minusWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source

Subtract two vectors element-wise.

minusFloatX4# :: FloatX4# -> FloatX4# -> FloatX4# Source

Subtract two vectors element-wise.

minusDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2# Source

Subtract two vectors element-wise.

minusFloatX8# :: FloatX8# -> FloatX8# -> FloatX8# Source

Subtract two vectors element-wise.

minusDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4# Source

Subtract two vectors element-wise.

minusFloatX16# :: FloatX16# -> FloatX16# -> FloatX16# Source

Subtract two vectors element-wise.

minusDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8# Source

Subtract two vectors element-wise.

timesInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source

Multiply two vectors element-wise.

timesInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source

Multiply two vectors element-wise.

timesInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source

Multiply two vectors element-wise.

timesInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source

Multiply two vectors element-wise.

timesInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source

Multiply two vectors element-wise.

timesInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source

Multiply two vectors element-wise.

timesInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source

Multiply two vectors element-wise.

timesInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source

Multiply two vectors element-wise.

timesInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source

Multiply two vectors element-wise.

timesInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source

Multiply two vectors element-wise.

timesInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source

Multiply two vectors element-wise.

timesInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source

Multiply two vectors element-wise.

timesWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source

Multiply two vectors element-wise.

timesWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source

Multiply two vectors element-wise.

timesWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source

Multiply two vectors element-wise.

timesWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source

Multiply two vectors element-wise.

timesWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source

Multiply two vectors element-wise.

timesWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source

Multiply two vectors element-wise.

timesWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source

Multiply two vectors element-wise.

timesWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source

Multiply two vectors element-wise.

timesWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source

Multiply two vectors element-wise.

timesWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source

Multiply two vectors element-wise.

timesWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source

Multiply two vectors element-wise.

timesWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source

Multiply two vectors element-wise.

timesFloatX4# :: FloatX4# -> FloatX4# -> FloatX4# Source

Multiply two vectors element-wise.

timesDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2# Source

Multiply two vectors element-wise.

timesFloatX8# :: FloatX8# -> FloatX8# -> FloatX8# Source

Multiply two vectors element-wise.

timesDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4# Source

Multiply two vectors element-wise.

timesFloatX16# :: FloatX16# -> FloatX16# -> FloatX16# Source

Multiply two vectors element-wise.

timesDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8# Source

Multiply two vectors element-wise.

divideFloatX4# :: FloatX4# -> FloatX4# -> FloatX4# Source

Divide two vectors element-wise.

divideDoubleX2# :: DoubleX2# -> DoubleX2# -> DoubleX2# Source

Divide two vectors element-wise.

divideFloatX8# :: FloatX8# -> FloatX8# -> FloatX8# Source

Divide two vectors element-wise.

divideDoubleX4# :: DoubleX4# -> DoubleX4# -> DoubleX4# Source

Divide two vectors element-wise.

divideFloatX16# :: FloatX16# -> FloatX16# -> FloatX16# Source

Divide two vectors element-wise.

divideDoubleX8# :: DoubleX8# -> DoubleX8# -> DoubleX8# Source

Divide two vectors element-wise.

quotInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source

Rounds towards zero element-wise.

quotInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source

Rounds towards zero element-wise.

quotInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source

Rounds towards zero element-wise.

quotInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source

Rounds towards zero element-wise.

quotInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source

Rounds towards zero element-wise.

quotInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source

Rounds towards zero element-wise.

quotInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source

Rounds towards zero element-wise.

quotInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source

Rounds towards zero element-wise.

quotInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source

Rounds towards zero element-wise.

quotInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source

Rounds towards zero element-wise.

quotInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source

Rounds towards zero element-wise.

quotInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source

Rounds towards zero element-wise.

quotWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source

Rounds towards zero element-wise.

quotWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source

Rounds towards zero element-wise.

quotWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source

Rounds towards zero element-wise.

quotWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source

Rounds towards zero element-wise.

quotWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source

Rounds towards zero element-wise.

quotWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source

Rounds towards zero element-wise.

quotWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source

Rounds towards zero element-wise.

quotWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source

Rounds towards zero element-wise.

quotWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source

Rounds towards zero element-wise.

quotWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source

Rounds towards zero element-wise.

quotWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source

Rounds towards zero element-wise.

quotWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source

Rounds towards zero element-wise.

remInt8X16# :: Int8X16# -> Int8X16# -> Int8X16# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt16X8# :: Int16X8# -> Int16X8# -> Int16X8# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt32X4# :: Int32X4# -> Int32X4# -> Int32X4# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt64X2# :: Int64X2# -> Int64X2# -> Int64X2# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt8X32# :: Int8X32# -> Int8X32# -> Int8X32# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt16X16# :: Int16X16# -> Int16X16# -> Int16X16# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt32X8# :: Int32X8# -> Int32X8# -> Int32X8# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt64X4# :: Int64X4# -> Int64X4# -> Int64X4# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt8X64# :: Int8X64# -> Int8X64# -> Int8X64# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt16X32# :: Int16X32# -> Int16X32# -> Int16X32# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt32X16# :: Int32X16# -> Int32X16# -> Int32X16# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remInt64X8# :: Int64X8# -> Int64X8# -> Int64X8# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord8X16# :: Word8X16# -> Word8X16# -> Word8X16# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord16X8# :: Word16X8# -> Word16X8# -> Word16X8# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord32X4# :: Word32X4# -> Word32X4# -> Word32X4# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord64X2# :: Word64X2# -> Word64X2# -> Word64X2# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord8X32# :: Word8X32# -> Word8X32# -> Word8X32# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord16X16# :: Word16X16# -> Word16X16# -> Word16X16# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord32X8# :: Word32X8# -> Word32X8# -> Word32X8# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord64X4# :: Word64X4# -> Word64X4# -> Word64X4# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord8X64# :: Word8X64# -> Word8X64# -> Word8X64# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord16X32# :: Word16X32# -> Word16X32# -> Word16X32# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord32X16# :: Word32X16# -> Word32X16# -> Word32X16# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

remWord64X8# :: Word64X8# -> Word64X8# -> Word64X8# Source

Satisfies (quot# x y) times# y plus# (rem# x y) == x.

negateInt8X16# :: Int8X16# -> Int8X16# Source

Negate element-wise.

negateInt16X8# :: Int16X8# -> Int16X8# Source

Negate element-wise.

negateInt32X4# :: Int32X4# -> Int32X4# Source

Negate element-wise.

negateInt64X2# :: Int64X2# -> Int64X2# Source

Negate element-wise.

negateInt8X32# :: Int8X32# -> Int8X32# Source

Negate element-wise.

negateInt16X16# :: Int16X16# -> Int16X16# Source

Negate element-wise.

negateInt32X8# :: Int32X8# -> Int32X8# Source

Negate element-wise.

negateInt64X4# :: Int64X4# -> Int64X4# Source

Negate element-wise.

negateInt8X64# :: Int8X64# -> Int8X64# Source

Negate element-wise.

negateInt16X32# :: Int16X32# -> Int16X32# Source

Negate element-wise.

negateInt32X16# :: Int32X16# -> Int32X16# Source

Negate element-wise.

negateInt64X8# :: Int64X8# -> Int64X8# Source

Negate element-wise.

negateFloatX4# :: FloatX4# -> FloatX4# Source

Negate element-wise.

negateDoubleX2# :: DoubleX2# -> DoubleX2# Source

Negate element-wise.

negateFloatX8# :: FloatX8# -> FloatX8# Source

Negate element-wise.

negateDoubleX4# :: DoubleX4# -> DoubleX4# Source

Negate element-wise.

negateFloatX16# :: FloatX16# -> FloatX16# Source

Negate element-wise.

negateDoubleX8# :: DoubleX8# -> DoubleX8# Source

Negate element-wise.

indexInt8X16Array# :: ByteArray# -> Int# -> Int8X16# Source

Read a vector from specified index of immutable array.

indexInt16X8Array# :: ByteArray# -> Int# -> Int16X8# Source

Read a vector from specified index of immutable array.

indexInt32X4Array# :: ByteArray# -> Int# -> Int32X4# Source

Read a vector from specified index of immutable array.

indexInt64X2Array# :: ByteArray# -> Int# -> Int64X2# Source

Read a vector from specified index of immutable array.

indexInt8X32Array# :: ByteArray# -> Int# -> Int8X32# Source

Read a vector from specified index of immutable array.

indexInt16X16Array# :: ByteArray# -> Int# -> Int16X16# Source

Read a vector from specified index of immutable array.

indexInt32X8Array# :: ByteArray# -> Int# -> Int32X8# Source

Read a vector from specified index of immutable array.

indexInt64X4Array# :: ByteArray# -> Int# -> Int64X4# Source

Read a vector from specified index of immutable array.

indexInt8X64Array# :: ByteArray# -> Int# -> Int8X64# Source

Read a vector from specified index of immutable array.

indexInt16X32Array# :: ByteArray# -> Int# -> Int16X32# Source

Read a vector from specified index of immutable array.

indexInt32X16Array# :: ByteArray# -> Int# -> Int32X16# Source

Read a vector from specified index of immutable array.

indexInt64X8Array# :: ByteArray# -> Int# -> Int64X8# Source

Read a vector from specified index of immutable array.

indexWord8X16Array# :: ByteArray# -> Int# -> Word8X16# Source

Read a vector from specified index of immutable array.

indexWord16X8Array# :: ByteArray# -> Int# -> Word16X8# Source

Read a vector from specified index of immutable array.

indexWord32X4Array# :: ByteArray# -> Int# -> Word32X4# Source

Read a vector from specified index of immutable array.

indexWord64X2Array# :: ByteArray# -> Int# -> Word64X2# Source

Read a vector from specified index of immutable array.

indexWord8X32Array# :: ByteArray# -> Int# -> Word8X32# Source

Read a vector from specified index of immutable array.

indexWord16X16Array# :: ByteArray# -> Int# -> Word16X16# Source

Read a vector from specified index of immutable array.

indexWord32X8Array# :: ByteArray# -> Int# -> Word32X8# Source

Read a vector from specified index of immutable array.

indexWord64X4Array# :: ByteArray# -> Int# -> Word64X4# Source

Read a vector from specified index of immutable array.

indexWord8X64Array# :: ByteArray# -> Int# -> Word8X64# Source

Read a vector from specified index of immutable array.

indexWord16X32Array# :: ByteArray# -> Int# -> Word16X32# Source

Read a vector from specified index of immutable array.

indexWord32X16Array# :: ByteArray# -> Int# -> Word32X16# Source

Read a vector from specified index of immutable array.

indexWord64X8Array# :: ByteArray# -> Int# -> Word64X8# Source

Read a vector from specified index of immutable array.

indexFloatX4Array# :: ByteArray# -> Int# -> FloatX4# Source

Read a vector from specified index of immutable array.

indexDoubleX2Array# :: ByteArray# -> Int# -> DoubleX2# Source

Read a vector from specified index of immutable array.

indexFloatX8Array# :: ByteArray# -> Int# -> FloatX8# Source

Read a vector from specified index of immutable array.

indexDoubleX4Array# :: ByteArray# -> Int# -> DoubleX4# Source

Read a vector from specified index of immutable array.

indexFloatX16Array# :: ByteArray# -> Int# -> FloatX16# Source

Read a vector from specified index of immutable array.

indexDoubleX8Array# :: ByteArray# -> Int# -> DoubleX8# Source

Read a vector from specified index of immutable array.

readInt8X16Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int8X16##) Source

Read a vector from specified index of mutable array.

readInt16X8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int16X8##) Source

Read a vector from specified index of mutable array.

readInt32X4Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int32X4##) Source

Read a vector from specified index of mutable array.

readInt64X2Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int64X2##) Source

Read a vector from specified index of mutable array.

readInt8X32Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int8X32##) Source

Read a vector from specified index of mutable array.

readInt16X16Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int16X16##) Source

Read a vector from specified index of mutable array.

readInt32X8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int32X8##) Source

Read a vector from specified index of mutable array.

readInt64X4Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int64X4##) Source

Read a vector from specified index of mutable array.

readInt8X64Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int8X64##) Source

Read a vector from specified index of mutable array.

readInt16X32Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int16X32##) Source

Read a vector from specified index of mutable array.

readInt32X16Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int32X16##) Source

Read a vector from specified index of mutable array.

readInt64X8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int64X8##) Source

Read a vector from specified index of mutable array.

readWord8X16Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word8X16##) Source

Read a vector from specified index of mutable array.

readWord16X8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word16X8##) Source

Read a vector from specified index of mutable array.

readWord32X4Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word32X4##) Source

Read a vector from specified index of mutable array.

readWord64X2Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word64X2##) Source

Read a vector from specified index of mutable array.

readWord8X32Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word8X32##) Source

Read a vector from specified index of mutable array.

readWord16X16Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word16X16##) Source

Read a vector from specified index of mutable array.

readWord32X8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word32X8##) Source

Read a vector from specified index of mutable array.

readWord64X4Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word64X4##) Source

Read a vector from specified index of mutable array.

readWord8X64Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word8X64##) Source

Read a vector from specified index of mutable array.

readWord16X32Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word16X32##) Source

Read a vector from specified index of mutable array.

readWord32X16Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word32X16##) Source

Read a vector from specified index of mutable array.

readWord64X8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Word64X8##) Source

Read a vector from specified index of mutable array.

readFloatX4Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, FloatX4##) Source

Read a vector from specified index of mutable array.

readDoubleX2Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, DoubleX2##) Source

Read a vector from specified index of mutable array.

readFloatX8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, FloatX8##) Source

Read a vector from specified index of mutable array.

readDoubleX4Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, DoubleX4##) Source

Read a vector from specified index of mutable array.

readFloatX16Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, FloatX16##) Source

Read a vector from specified index of mutable array.

readDoubleX8Array# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, DoubleX8##) Source

Read a vector from specified index of mutable array.

writeInt8X16Array# :: MutableByteArray# d -> Int# -> Int8X16# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt16X8Array# :: MutableByteArray# d -> Int# -> Int16X8# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt32X4Array# :: MutableByteArray# d -> Int# -> Int32X4# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt64X2Array# :: MutableByteArray# d -> Int# -> Int64X2# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt8X32Array# :: MutableByteArray# d -> Int# -> Int8X32# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt16X16Array# :: MutableByteArray# d -> Int# -> Int16X16# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt32X8Array# :: MutableByteArray# d -> Int# -> Int32X8# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt64X4Array# :: MutableByteArray# d -> Int# -> Int64X4# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt8X64Array# :: MutableByteArray# d -> Int# -> Int8X64# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt16X32Array# :: MutableByteArray# d -> Int# -> Int16X32# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt32X16Array# :: MutableByteArray# d -> Int# -> Int32X16# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeInt64X8Array# :: MutableByteArray# d -> Int# -> Int64X8# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord8X16Array# :: MutableByteArray# d -> Int# -> Word8X16# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord16X8Array# :: MutableByteArray# d -> Int# -> Word16X8# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord32X4Array# :: MutableByteArray# d -> Int# -> Word32X4# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord64X2Array# :: MutableByteArray# d -> Int# -> Word64X2# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord8X32Array# :: MutableByteArray# d -> Int# -> Word8X32# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord16X16Array# :: MutableByteArray# d -> Int# -> Word16X16# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord32X8Array# :: MutableByteArray# d -> Int# -> Word32X8# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord64X4Array# :: MutableByteArray# d -> Int# -> Word64X4# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord8X64Array# :: MutableByteArray# d -> Int# -> Word8X64# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord16X32Array# :: MutableByteArray# d -> Int# -> Word16X32# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord32X16Array# :: MutableByteArray# d -> Int# -> Word32X16# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeWord64X8Array# :: MutableByteArray# d -> Int# -> Word64X8# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeFloatX4Array# :: MutableByteArray# d -> Int# -> FloatX4# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeDoubleX2Array# :: MutableByteArray# d -> Int# -> DoubleX2# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeFloatX8Array# :: MutableByteArray# d -> Int# -> FloatX8# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeDoubleX4Array# :: MutableByteArray# d -> Int# -> DoubleX4# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeFloatX16Array# :: MutableByteArray# d -> Int# -> FloatX16# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

writeDoubleX8Array# :: MutableByteArray# d -> Int# -> DoubleX8# -> State# d -> State# d Source

Write a vector to specified index of mutable array.

indexInt8X16OffAddr# :: Addr# -> Int# -> Int8X16# Source

Reads vector; offset in bytes.

indexInt16X8OffAddr# :: Addr# -> Int# -> Int16X8# Source

Reads vector; offset in bytes.

indexInt32X4OffAddr# :: Addr# -> Int# -> Int32X4# Source

Reads vector; offset in bytes.

indexInt64X2OffAddr# :: Addr# -> Int# -> Int64X2# Source

Reads vector; offset in bytes.

indexInt8X32OffAddr# :: Addr# -> Int# -> Int8X32# Source

Reads vector; offset in bytes.

indexInt16X16OffAddr# :: Addr# -> Int# -> Int16X16# Source

Reads vector; offset in bytes.

indexInt32X8OffAddr# :: Addr# -> Int# -> Int32X8# Source

Reads vector; offset in bytes.

indexInt64X4OffAddr# :: Addr# -> Int# -> Int64X4# Source

Reads vector; offset in bytes.

indexInt8X64OffAddr# :: Addr# -> Int# -> Int8X64# Source

Reads vector; offset in bytes.

indexInt16X32OffAddr# :: Addr# -> Int# -> Int16X32# Source

Reads vector; offset in bytes.

indexInt32X16OffAddr# :: Addr# -> Int# -> Int32X16# Source

Reads vector; offset in bytes.

indexInt64X8OffAddr# :: Addr# -> Int# -> Int64X8# Source

Reads vector; offset in bytes.

indexWord8X16OffAddr# :: Addr# -> Int# -> Word8X16# Source

Reads vector; offset in bytes.

indexWord16X8OffAddr# :: Addr# -> Int# -> Word16X8# Source

Reads vector; offset in bytes.

indexWord32X4OffAddr# :: Addr# -> Int# -> Word32X4# Source

Reads vector; offset in bytes.

indexWord64X2OffAddr# :: Addr# -> Int# -> Word64X2# Source

Reads vector; offset in bytes.

indexWord8X32OffAddr# :: Addr# -> Int# -> Word8X32# Source

Reads vector; offset in bytes.

indexWord16X16OffAddr# :: Addr# -> Int# -> Word16X16# Source

Reads vector; offset in bytes.

indexWord32X8OffAddr# :: Addr# -> Int# -> Word32X8# Source

Reads vector; offset in bytes.

indexWord64X4OffAddr# :: Addr# -> Int# -> Word64X4# Source

Reads vector; offset in bytes.

indexWord8X64OffAddr# :: Addr# -> Int# -> Word8X64# Source

Reads vector; offset in bytes.

indexWord16X32OffAddr# :: Addr# -> Int# -> Word16X32# Source

Reads vector; offset in bytes.

indexWord32X16OffAddr# :: Addr# -> Int# -> Word32X16# Source

Reads vector; offset in bytes.

indexWord64X8OffAddr# :: Addr# -> Int# -> Word64X8# Source

Reads vector; offset in bytes.

indexFloatX4OffAddr# :: Addr# -> Int# -> FloatX4# Source

Reads vector; offset in bytes.

indexDoubleX2OffAddr# :: Addr# -> Int# -> DoubleX2# Source

Reads vector; offset in bytes.

indexFloatX8OffAddr# :: Addr# -> Int# -> FloatX8# Source

Reads vector; offset in bytes.

indexDoubleX4OffAddr# :: Addr# -> Int# -> DoubleX4# Source

Reads vector; offset in bytes.

indexFloatX16OffAddr# :: Addr# -> Int# -> FloatX16# Source

Reads vector; offset in bytes.

indexDoubleX8OffAddr# :: Addr# -> Int# -> DoubleX8# Source

Reads vector; offset in bytes.

readInt8X16OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int8X16##) Source

Reads vector; offset in bytes.

readInt16X8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int16X8##) Source

Reads vector; offset in bytes.

readInt32X4OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int32X4##) Source

Reads vector; offset in bytes.

readInt64X2OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int64X2##) Source

Reads vector; offset in bytes.

readInt8X32OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int8X32##) Source

Reads vector; offset in bytes.

readInt16X16OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int16X16##) Source

Reads vector; offset in bytes.

readInt32X8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int32X8##) Source

Reads vector; offset in bytes.

readInt64X4OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int64X4##) Source

Reads vector; offset in bytes.

readInt8X64OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int8X64##) Source

Reads vector; offset in bytes.

readInt16X32OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int16X32##) Source

Reads vector; offset in bytes.

readInt32X16OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int32X16##) Source

Reads vector; offset in bytes.

readInt64X8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Int64X8##) Source

Reads vector; offset in bytes.

readWord8X16OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word8X16##) Source

Reads vector; offset in bytes.

readWord16X8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word16X8##) Source

Reads vector; offset in bytes.

readWord32X4OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word32X4##) Source

Reads vector; offset in bytes.

readWord64X2OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word64X2##) Source

Reads vector; offset in bytes.

readWord8X32OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word8X32##) Source

Reads vector; offset in bytes.

readWord16X16OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word16X16##) Source

Reads vector; offset in bytes.

readWord32X8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word32X8##) Source

Reads vector; offset in bytes.

readWord64X4OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word64X4##) Source

Reads vector; offset in bytes.

readWord8X64OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word8X64##) Source

Reads vector; offset in bytes.

readWord16X32OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word16X32##) Source

Reads vector; offset in bytes.

readWord32X16OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word32X16##) Source

Reads vector; offset in bytes.

readWord64X8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, Word64X8##) Source

Reads vector; offset in bytes.

readFloatX4OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, FloatX4##) Source

Reads vector; offset in bytes.

readDoubleX2OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, DoubleX2##) Source

Reads vector; offset in bytes.

readFloatX8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, FloatX8##) Source

Reads vector; offset in bytes.

readDoubleX4OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, DoubleX4##) Source

Reads vector; offset in bytes.

readFloatX16OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, FloatX16##) Source

Reads vector; offset in bytes.

readDoubleX8OffAddr# :: Addr# -> Int# -> State# d -> (#State# d, DoubleX8##) Source

Reads vector; offset in bytes.

writeInt8X16OffAddr# :: Addr# -> Int# -> Int8X16# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt16X8OffAddr# :: Addr# -> Int# -> Int16X8# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt32X4OffAddr# :: Addr# -> Int# -> Int32X4# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt64X2OffAddr# :: Addr# -> Int# -> Int64X2# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt8X32OffAddr# :: Addr# -> Int# -> Int8X32# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt16X16OffAddr# :: Addr# -> Int# -> Int16X16# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt32X8OffAddr# :: Addr# -> Int# -> Int32X8# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt64X4OffAddr# :: Addr# -> Int# -> Int64X4# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt8X64OffAddr# :: Addr# -> Int# -> Int8X64# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt16X32OffAddr# :: Addr# -> Int# -> Int16X32# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt32X16OffAddr# :: Addr# -> Int# -> Int32X16# -> State# d -> State# d Source

Write vector; offset in bytes.

writeInt64X8OffAddr# :: Addr# -> Int# -> Int64X8# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord8X16OffAddr# :: Addr# -> Int# -> Word8X16# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord16X8OffAddr# :: Addr# -> Int# -> Word16X8# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord32X4OffAddr# :: Addr# -> Int# -> Word32X4# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord64X2OffAddr# :: Addr# -> Int# -> Word64X2# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord8X32OffAddr# :: Addr# -> Int# -> Word8X32# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord16X16OffAddr# :: Addr# -> Int# -> Word16X16# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord32X8OffAddr# :: Addr# -> Int# -> Word32X8# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord64X4OffAddr# :: Addr# -> Int# -> Word64X4# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord8X64OffAddr# :: Addr# -> Int# -> Word8X64# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord16X32OffAddr# :: Addr# -> Int# -> Word16X32# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord32X16OffAddr# :: Addr# -> Int# -> Word32X16# -> State# d -> State# d Source

Write vector; offset in bytes.

writeWord64X8OffAddr# :: Addr# -> Int# -> Word64X8# -> State# d -> State# d Source

Write vector; offset in bytes.

writeFloatX4OffAddr# :: Addr# -> Int# -> FloatX4# -> State# d -> State# d Source

Write vector; offset in bytes.

writeDoubleX2OffAddr# :: Addr# -> Int# -> DoubleX2# -> State# d -> State# d Source

Write vector; offset in bytes.

writeFloatX8OffAddr# :: Addr# -> Int# -> FloatX8# -> State# d -> State# d Source

Write vector; offset in bytes.

writeDoubleX4OffAddr# :: Addr# -> Int# -> DoubleX4# -> State# d -> State# d Source

Write vector; offset in bytes.

writeFloatX16OffAddr# :: Addr# -> Int# -> FloatX16# -> State# d -> State# d Source

Write vector; offset in bytes.

writeDoubleX8OffAddr# :: Addr# -> Int# -> DoubleX8# -> State# d -> State# d Source

Write vector; offset in bytes.

indexInt8ArrayAsInt8X16# :: ByteArray# -> Int# -> Int8X16# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt16ArrayAsInt16X8# :: ByteArray# -> Int# -> Int16X8# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt32ArrayAsInt32X4# :: ByteArray# -> Int# -> Int32X4# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt64ArrayAsInt64X2# :: ByteArray# -> Int# -> Int64X2# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt8ArrayAsInt8X32# :: ByteArray# -> Int# -> Int8X32# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt16ArrayAsInt16X16# :: ByteArray# -> Int# -> Int16X16# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt32ArrayAsInt32X8# :: ByteArray# -> Int# -> Int32X8# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt64ArrayAsInt64X4# :: ByteArray# -> Int# -> Int64X4# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt8ArrayAsInt8X64# :: ByteArray# -> Int# -> Int8X64# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt16ArrayAsInt16X32# :: ByteArray# -> Int# -> Int16X32# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt32ArrayAsInt32X16# :: ByteArray# -> Int# -> Int32X16# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexInt64ArrayAsInt64X8# :: ByteArray# -> Int# -> Int64X8# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord8ArrayAsWord8X16# :: ByteArray# -> Int# -> Word8X16# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord16ArrayAsWord16X8# :: ByteArray# -> Int# -> Word16X8# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord32ArrayAsWord32X4# :: ByteArray# -> Int# -> Word32X4# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord64ArrayAsWord64X2# :: ByteArray# -> Int# -> Word64X2# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord8ArrayAsWord8X32# :: ByteArray# -> Int# -> Word8X32# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord16ArrayAsWord16X16# :: ByteArray# -> Int# -> Word16X16# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord32ArrayAsWord32X8# :: ByteArray# -> Int# -> Word32X8# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord64ArrayAsWord64X4# :: ByteArray# -> Int# -> Word64X4# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord8ArrayAsWord8X64# :: ByteArray# -> Int# -> Word8X64# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord16ArrayAsWord16X32# :: ByteArray# -> Int# -> Word16X32# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord32ArrayAsWord32X16# :: ByteArray# -> Int# -> Word32X16# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexWord64ArrayAsWord64X8# :: ByteArray# -> Int# -> Word64X8# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexFloatArrayAsFloatX4# :: ByteArray# -> Int# -> FloatX4# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexDoubleArrayAsDoubleX2# :: ByteArray# -> Int# -> DoubleX2# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexFloatArrayAsFloatX8# :: ByteArray# -> Int# -> FloatX8# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexDoubleArrayAsDoubleX4# :: ByteArray# -> Int# -> DoubleX4# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexFloatArrayAsFloatX16# :: ByteArray# -> Int# -> FloatX16# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

indexDoubleArrayAsDoubleX8# :: ByteArray# -> Int# -> DoubleX8# Source

Read a vector from specified index of immutable array of scalars; offset is in scalar elements.

readInt8ArrayAsInt8X16# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int8X16##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt16ArrayAsInt16X8# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int16X8##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt32ArrayAsInt32X4# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int32X4##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt64ArrayAsInt64X2# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int64X2##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt8ArrayAsInt8X32# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int8X32##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt16ArrayAsInt16X16# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int16X16##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt32ArrayAsInt32X8# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int32X8##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt64ArrayAsInt64X4# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int64X4##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt8ArrayAsInt8X64# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int8X64##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt16ArrayAsInt16X32# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int16X32##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt32ArrayAsInt32X16# :: MutableByteArray# d -> Int# -> State# d -> (#State# d, Int32X16##) Source

Read a vector from specified index of mutable array of scalars; offset is in scalar elements.

readInt64ArrayAsInt64X8# :: MutableByteArray# d -> Int# -> State# d -> (#State# d,