BSD-3-Clause licensed 
This version can be pinned in stack with:ghc-prim-0.5.3@sha256:2284e90b0d56dfd389588b5c927e7f22c17f1d6c2291464cb0cc3f9651b0ba23,2319
Module documentation for 0.5.3
Used by 111 packages in 
nightly-2020-02-14(full list with versions):
aeson, 
approximate, 
arithmoi, 
atomic-primops, 
base, 
base16-bytestring, 
basement, 
base-orphans, 
bits-extra, 
bitvec, 
blaze-textual, 
bower-json, 
bv, 
bytestring, 
cborg, 
cereal, 
chaselev-deque, 
classy-prelude, 
constraints, 
cryptohash, 
cryptonite, 
crypto-numbers, 
csv-conduit, 
data-bword, 
data-diverse, 
data-dword, 
deepseq-generics, 
deriving-compat, 
double-conversion, 
ed25519, 
exp-pairs, 
formatting, 
foundation, 
generic-deriving, 
GenericPretty, 
generics-sop, 
ghc-compact, 
ghc-heap, 
ghc-lib, 
ghc-lib-parser, 
and many more This package contains the primitive types and operations supplied by GHC.
0.5.3 August 2018
- 
Shipped with GHC 8.6.1 
- 
Added to GHC.Prim:
addWordC# :: Word# -> Word# -> (# Word#, Int# #)
 
- 
unpackClosure#can now unpack any valid Haskell closure.
Previously it returned empty pointer and non-pointer arrays
for thunks.
 
0.5.2.0 March 2018
0.5.1.1 November 2017
0.5.1.0 July 2017
- 
Shipped with GHC 8.2.1 
- 
Added to GHC.Prim:
   fabsDouble# :: Double# -> Double#
  fabsFloat# :: Float# -> Float#
  isByteArrayPinned# :: ByteArray# -> Int#
  isMutableByteArrayPinned# :: MutableByteArray# s -> Int#
  anyToAddr# :: a -> State# (RealWorld) -> (# State# (RealWorld),Addr# #)
 
- 
New primitives for compact regions in GHC.Prim:
   Compact#
  compactNew#
  compactResize#
  compactContains#
  compactContainsAny#
  compactGetFirstBlock#
  compactGetNextBlock#
  compactAllocateBlock#
  compactFixupPointers#
  compactAdd#
  compactAddWithSharing#
  compactSize#
 
- 
Generalised noDuplicate#from
   noDuplicate# :: State# (RealWorld) -> State# (RealWorld)
 to   noDuplicate# :: State# s -> State# s
 
0.5.0.0
- 
Shipped with GHC 8.0.1 
- 
GHC.Classes: newclass IP (a :: Symbol) b | a -> b
 
- 
GHC.Prim: changed type signatures from
   check# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> (# State# RealWorld, () #)
  finalizeWeak# :: Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, State# RealWorld -> (# State# RealWorld, () #) #)
  mkWeak# :: a -> b -> c -> State# RealWorld -> (# State# RealWorld, Weak# b #)
 to   check# :: (State# RealWorld -> (# State# RealWorld, a #)) -> State# RealWorld -> State# RealWorld
  finalizeWeak# :: Weak# a -> State# RealWorld -> (# State# RealWorld, Int#, State# RealWorld -> (# State# RealWorld, b #) #)
  mkWeak# :: a -> b -> (State# RealWorld -> (# State# RealWorld, c #)) -> State# RealWorld -> (# State# RealWorld, Weak# b #)
 
- 
Removed from GHC.Prim:
   parAt# :: b -> a -> Int# -> Int# -> Int# -> Int# -> c -> Int#
  parAtAbs# :: a -> Int# -> Int# -> Int# -> Int# -> Int# -> b -> Int#
  parAtForNow# :: b -> a -> Int# -> Int# -> Int# -> Int# -> c -> Int#
  parAtRel# :: a -> Int# -> Int# -> Int# -> Int# -> Int# -> b -> Int#
  parGlobal# :: a -> Int# -> Int# -> Int# -> Int# -> b -> Int#
  parLocal# :: a -> Int# -> Int# -> Int# -> Int# -> b -> Int#
 
- 
Added to GHC.Prim:
   getSizeofMutableByteArray# :: MutableByteArray# d -> State# d -> (# State# d, Int# #)
  subWordC# :: Word# -> Word# -> (# Word#, Int# #)
  runRW# :: (State# RealWorld -> (# State# RealWorld, o #)) -> (# State# RealWorld, o #)
 
- 
Added to GHC.Types:
   data Module = Module TrName TrName
  data Nat
  data Symbol
  data TrName = TrNameS Addr# | TrNameD [Char]
  data TyCon = TyCon Word# Word# Module TrName