ajhc-0.8.0.1: lib/jhc-prim/Jhc/Prim/Rts.hs
-- allowing introspection into the rts
module Jhc.Prim.Rts where
import Jhc.Prim.Bits
-- A Bang_ is always in WHNF. The mnemonic is 'Bang_ Char ~ !Char'
-- Bang_ is also an FFI-able type that turns into a raw haskell object pointer.
data {-# CTYPE "wptr_t" #-} Bang_ a :: #
-- safe
foreign import primitive toBang_ :: a -> Bang_ a
foreign import primitive fromBang_ :: Bang_ a -> a
-- unwise
foreign import primitive isWHNF :: a -> Bool_
foreign import primitive isInHeap :: Bang_ a -> Bool_
foreign import primitive bangPtr :: Bang_ a -> Addr_
foreign import primitive bangToRaw :: Bang_ a -> BitsPtr_
-- unsafe
foreign import primitive bangFromRaw :: BitsPtr_ -> Bang_ a