module HROOT.Core (
module HROOT.Core.Deletable
, module HROOT.Core.TApplication
, module HROOT.Core.TArray
, module HROOT.Core.TArrayC
, module HROOT.Core.TArrayD
, module HROOT.Core.TArrayF
, module HROOT.Core.TArrayI
, module HROOT.Core.TArrayL
, module HROOT.Core.TArrayL64
, module HROOT.Core.TArrayS
, module HROOT.Core.TAtt3D
, module HROOT.Core.TAttAxis
, module HROOT.Core.TAttBBox
, module HROOT.Core.TAttCanvas
, module HROOT.Core.TAttFill
, module HROOT.Core.TAttLine
, module HROOT.Core.TAttMarker
, module HROOT.Core.TAttPad
, module HROOT.Core.TAttText
, module HROOT.Core.TClass
, module HROOT.Core.TCollection
, module HROOT.Core.TDictionary
, module HROOT.Core.TDirectory
, module HROOT.Core.TGlobal
, module HROOT.Core.TKey
, module HROOT.Core.TNamed
, module HROOT.Core.TObjArray
, module HROOT.Core.TObject
, module HROOT.Core.TQObject
, module HROOT.Core.TROOT
, module HROOT.Core.TSeqCollection
, module HROOT.Core.TSystem
, module HROOT.Core.TVirtualPad
, getROOT
, gROOT
, gSystem 
) where

import HROOT.Core.Deletable
import HROOT.Core.TApplication
import HROOT.Core.TArray
import HROOT.Core.TArrayC
import HROOT.Core.TArrayD
import HROOT.Core.TArrayF
import HROOT.Core.TArrayI
import HROOT.Core.TArrayL
import HROOT.Core.TArrayL64
import HROOT.Core.TArrayS
import HROOT.Core.TAtt3D
import HROOT.Core.TAttAxis
import HROOT.Core.TAttBBox
import HROOT.Core.TAttCanvas
import HROOT.Core.TAttFill
import HROOT.Core.TAttLine
import HROOT.Core.TAttMarker
import HROOT.Core.TAttPad
import HROOT.Core.TAttText
import HROOT.Core.TClass
import HROOT.Core.TCollection
import HROOT.Core.TDictionary
import HROOT.Core.TDirectory
import HROOT.Core.TGlobal
import HROOT.Core.TKey
import HROOT.Core.TNamed
import HROOT.Core.TObjArray
import HROOT.Core.TObject
import HROOT.Core.TQObject
import HROOT.Core.TROOT
import HROOT.Core.TSeqCollection
import HROOT.Core.TSystem
import HROOT.Core.TVirtualPad

import Foreign.C
import Foreign.Ptr
import FFICXX.Runtime.Cast
import HROOT.Core.TROOT.RawType
import HROOT.Core.TSystem.RawType

foreign import ccall "HROOT-coreTopLevel.h TopLevel_GetROOT" c_getroot 
  :: IO (Ptr RawTROOT)

foreign import ccall "HROOT-coreTopLevel.h TopLevel_gROOT" c_groot 
  :: IO (Ptr RawTROOT)

foreign import ccall "HROOT-coreTopLevel.h TopLevel_gSystem" c_gsystem 
  :: IO (Ptr RawTSystem)

getROOT :: IO TROOT
getROOT = xformnull c_getroot

gROOT :: IO TROOT
gROOT = xformnull c_groot

gSystem :: IO TSystem
gSystem = xformnull c_gsystem