+import Foreign.C.Types
+import Control.Monad
+
+foreign import ccall "gc/gc.h GC_malloc"
+ mallocGC :: CSize -> IO (Ptr a)
+
+foreign import ccall "gc/gc.h GC_get_heap_size"
+ heapSizeGC :: IO CSize
+
+
+foreign import ccall "gc/gc.h GC_init"
+ initGC :: IO ()
+
+
+foreign import ccall "gc/gc.h GC_add_roots"
+ addRootGCInternal :: Ptr a -> Ptr a -> IO ()