ghc-7.10.3: The GHC API

Safe Haskell | None
Language | Haskell2010

FastTypes

Contents

- FastInt
  - Getting in and out of FastInt
  - Arithmetic on FastInt
- FastChar
  - Getting in and out of FastChar
  - Operations on FastChar
- FastPtr
  - Getting in and out of FastPtr
  - Casting FastPtrs

Description

Fast integers, characters and pointer types for use in many parts of GHC

Synopsis

- type FastInt = Int#
- _ILIT :: Int -> FastInt
- iBox :: FastInt -> Int
- iUnbox :: Int -> FastInt
- (+#) :: Int# -> Int# -> Int#
- (-#) :: Int# -> Int# -> Int#
- (*#) :: Int# -> Int# -> Int#
- quotFastInt :: FastInt -> FastInt -> FastInt
- negateFastInt :: FastInt -> FastInt
- (==#) :: Int# -> Int# -> Bool
- (/=#) :: Int# -> Int# -> Bool
- (<#) :: Int# -> Int# -> Bool
- (<=#) :: Int# -> Int# -> Bool
- (>=#) :: Int# -> Int# -> Bool
- (>#) :: Int# -> Int# -> Bool
- minFastInt :: FastInt -> FastInt -> FastInt
- maxFastInt :: FastInt -> FastInt -> FastInt
- shiftLFastInt :: FastInt -> FastInt -> FastInt
- shiftR_FastInt :: FastInt -> FastInt -> FastInt
- shiftRLFastInt :: FastInt -> FastInt -> FastInt
- shiftRAFastInt :: FastInt -> FastInt -> FastInt
- bitAndFastInt :: FastInt -> FastInt -> FastInt
- bitOrFastInt :: FastInt -> FastInt -> FastInt
- type FastChar = Char#
- _CLIT :: Char -> FastChar
- cBox :: FastChar -> Char
- cUnbox :: Char -> FastChar
- fastOrd :: FastChar -> FastInt
- fastChr :: FastInt -> FastChar
- eqFastChar :: FastChar -> FastChar -> Bool
- type FastPtr a = Addr#
- pBox :: FastPtr a -> Ptr a
- pUnbox :: Ptr a -> FastPtr a
- castFastPtr :: FastPtr a -> FastPtr b

# FastInt

type FastInt = Int#

## Getting in and out of FastInt

_ILIT :: Int -> FastInt

iBox :: FastInt -> Int

iUnbox :: Int -> FastInt

## Arithmetic on FastInt

(+#) :: Int# -> Int# -> Int#

(-#) :: Int# -> Int# -> Int#

(*#) :: Int# -> Int# -> Int#

quotFastInt :: FastInt -> FastInt -> FastInt

negateFastInt :: FastInt -> FastInt

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

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

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

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

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

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

minFastInt :: FastInt -> FastInt -> FastInt

maxFastInt :: FastInt -> FastInt -> FastInt

shiftLFastInt :: FastInt -> FastInt -> FastInt

shiftR_FastInt :: FastInt -> FastInt -> FastInt

shiftRLFastInt :: FastInt -> FastInt -> FastInt

shiftRAFastInt :: FastInt -> FastInt -> FastInt

bitAndFastInt :: FastInt -> FastInt -> FastInt

bitOrFastInt :: FastInt -> FastInt -> FastInt

# FastChar

type FastChar = Char#

## Getting in and out of FastChar

_CLIT :: Char -> FastChar

cBox :: FastChar -> Char

cUnbox :: Char -> FastChar

## Operations on FastChar

fastOrd :: FastChar -> FastInt

fastChr :: FastInt -> FastChar

eqFastChar :: FastChar -> FastChar -> Bool

# FastPtr

type FastPtr a = Addr#

## Getting in and out of FastPtr

pBox :: FastPtr a -> Ptr a

pUnbox :: Ptr a -> FastPtr a

## Casting FastPtrs

castFastPtr :: FastPtr a -> FastPtr b