diff --git a/HROOT.cabal b/HROOT.cabal
--- a/HROOT.cabal
+++ b/HROOT.cabal
@@ -1,5 +1,5 @@
 Name:		HROOT
-Version:	0.5.1.0
+Version:	0.6.0.0
 Synopsis:	Wrapper for ROOT
 Description: 	Haskell FFI binding for ROOT  
 Homepage:       http://ianwookim.org/HROOT
@@ -31,9 +31,9 @@
   ghc-prof-options: -caf-all -auto-all
   Build-Depends:      base>4 && < 5
   Exposed-Modules:    HROOT
-                      HROOT.Type
-                      HROOT.Function
-                      HROOT.Class
+                      HROOT.Class.Interface
+                      HROOT.Class.Implementation
+                      HROOT.Class.FFI
                       HROOT.AddOn
                       HROOT.AddOnFunction
   extra-libraries:    stdc++
diff --git a/csrc/HROOT.cpp b/csrc/HROOT.cpp
--- a/csrc/HROOT.cpp
+++ b/csrc/HROOT.cpp
@@ -127,6 +127,8 @@
 #include "TApplication.h"
 #include "TRint.h"
 
+#include "TRandom.h"
+
 using namespace std;
 
 
@@ -848,6 +850,17 @@
 #define ROOT_TRINT_DEFINITIONVIRT(Type)\
 
 
+#undef ROOT_TRANDOM_DEFINITIONVIRT
+#define ROOT_TRANDOM_DEFINITIONVIRT(Type)\
+double Type ## _Gaus ( Type ## _p p, double mean, double sigma )\
+{\
+return to_nonconst<Type,Type ## _t>(p)->Gaus(mean, sigma);\
+}\
+double Type ## _Uniform ( Type ## _p p, double x1, double x2 )\
+{\
+return to_nonconst<Type,Type ## _t>(p)->Uniform(x1, x2);\
+}
+
 #undef ROOT_DELETABLE_DEFINITIONNONVIRT
 #define ROOT_DELETABLE_DEFINITIONNONVIRT(Type)\
 
@@ -1274,7 +1287,11 @@
 
 #undef ROOT_TAXIS_DEFINITIONNONVIRT
 #define ROOT_TAXIS_DEFINITIONNONVIRT(Type)\
-
+Type ## _p Type ## _newTAxis ( int  nbins, double xmin, double xmax )\
+{\
+Type * newp = new Type (nbins, xmin, xmax); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}
 
 #undef ROOT_TLATEX_DEFINITIONNONVIRT
 #define ROOT_TLATEX_DEFINITIONNONVIRT(Type)\
@@ -1523,6 +1540,15 @@
 return to_nonconst<Type ## _t, Type >(newp);\
 }
 
+#undef ROOT_TRANDOM_DEFINITIONNONVIRT
+#define ROOT_TRANDOM_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTRandom ( int  seed )\
+{\
+Type * newp = new Type (seed); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}
+
+ROOT_DELETABLE_DEFINITIONVIRT(TRandom)
 ROOT_DELETABLE_DEFINITIONVIRT(TRint)
 ROOT_DELETABLE_DEFINITIONVIRT(TApplication)
 ROOT_DELETABLE_DEFINITIONVIRT(TSlider)
@@ -2006,6 +2032,7 @@
 ROOT_TLINE_DEFINITIONVIRT(TGaxis)
 ROOT_TLINE_DEFINITIONVIRT(TArrow)
 ROOT_TLINE_DEFINITIONVIRT(TLine)
+ROOT_TNAMED_DEFINITIONVIRT(TRandom)
 ROOT_TNAMED_DEFINITIONVIRT(TH3S)
 ROOT_TNAMED_DEFINITIONVIRT(TH3I)
 ROOT_TNAMED_DEFINITIONVIRT(TH3F)
@@ -2058,6 +2085,7 @@
 ROOT_TNAMED_DEFINITIONVIRT(TNamed)
 ROOT_TNTUPLE_DEFINITIONVIRT(TNtuple)
 ROOT_TNTUPLED_DEFINITIONVIRT(TNtupleD)
+ROOT_TOBJECT_DEFINITIONVIRT(TRandom)
 ROOT_TOBJECT_DEFINITIONVIRT(TRint)
 ROOT_TOBJECT_DEFINITIONVIRT(TApplication)
 ROOT_TOBJECT_DEFINITIONVIRT(TSlider)
@@ -2184,6 +2212,7 @@
 ROOT_TQOBJECT_DEFINITIONVIRT(TPad)
 ROOT_TQOBJECT_DEFINITIONVIRT(TVirtualPad)
 ROOT_TQOBJECT_DEFINITIONVIRT(TQObject)
+ROOT_TRANDOM_DEFINITIONVIRT(TRandom)
 ROOT_TRINT_DEFINITIONVIRT(TRint)
 ROOT_TSPHE_DEFINITIONVIRT(TSPHE)
 ROOT_TSHAPE_DEFINITIONVIRT(TXTRU)
@@ -2326,3 +2355,4 @@
 ROOT_TSLIDER_DEFINITIONNONVIRT(TSlider)
 ROOT_TAPPLICATION_DEFINITIONNONVIRT(TApplication)
 ROOT_TRINT_DEFINITIONNONVIRT(TRint)
+ROOT_TRANDOM_DEFINITIONNONVIRT(TRandom)
diff --git a/csrc/HROOT.h b/csrc/HROOT.h
--- a/csrc/HROOT.h
+++ b/csrc/HROOT.h
@@ -491,6 +491,11 @@
 #define ROOT_TRINT_DECLARATIONVIRT(Type) \
 
 
+#undef ROOT_TRANDOM_DECLARATIONVIRT
+#define ROOT_TRANDOM_DECLARATIONVIRT(Type) \
+double Type ## _Gaus ( Type ## _p p, double mean, double sigma ); \
+double Type ## _Uniform ( Type ## _p p, double x1, double x2 )
+
 #undef ROOT_DELETABLE_DECLARATIONNONVIRT
 #define ROOT_DELETABLE_DECLARATIONNONVIRT(Type) \
 
@@ -664,7 +669,7 @@
 
 #undef ROOT_TAXIS_DECLARATIONNONVIRT
 #define ROOT_TAXIS_DECLARATIONNONVIRT(Type) \
-
+Type ## _p Type ## _newTAxis ( int  nbins, double xmin, double xmax )
 #undef ROOT_TLATEX_DECLARATIONNONVIRT
 #define ROOT_TLATEX_DECLARATIONNONVIRT(Type) \
 Type ## _p Type ## _newTLatex ( double x, double y, const char * text ); \
@@ -813,6 +818,9 @@
 #undef ROOT_TRINT_DECLARATIONNONVIRT
 #define ROOT_TRINT_DECLARATIONNONVIRT(Type) \
 Type ## _p Type ## _newTRint ( const char * appClassName, int * argc, char ** argv )
+#undef ROOT_TRANDOM_DECLARATIONNONVIRT
+#define ROOT_TRANDOM_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTRandom ( int  seed )
 
 ROOT_TYPE_DECLARATION(Deletable);
 ROOT_TYPE_DECLARATION(TObject);
@@ -919,7 +927,9 @@
 ROOT_TYPE_DECLARATION(TSlider);
 ROOT_TYPE_DECLARATION(TApplication);
 ROOT_TYPE_DECLARATION(TRint);
+ROOT_TYPE_DECLARATION(TRandom);
 
+ROOT_DELETABLE_DECLARATIONVIRT(TRandom);
 ROOT_DELETABLE_DECLARATIONVIRT(TRint);
 ROOT_DELETABLE_DECLARATIONVIRT(TApplication);
 ROOT_DELETABLE_DECLARATIONVIRT(TSlider);
@@ -1403,6 +1413,7 @@
 ROOT_TLINE_DECLARATIONVIRT(TGaxis);
 ROOT_TLINE_DECLARATIONVIRT(TArrow);
 ROOT_TLINE_DECLARATIONVIRT(TLine);
+ROOT_TNAMED_DECLARATIONVIRT(TRandom);
 ROOT_TNAMED_DECLARATIONVIRT(TH3S);
 ROOT_TNAMED_DECLARATIONVIRT(TH3I);
 ROOT_TNAMED_DECLARATIONVIRT(TH3F);
@@ -1455,6 +1466,7 @@
 ROOT_TNAMED_DECLARATIONVIRT(TNamed);
 ROOT_TNTUPLE_DECLARATIONVIRT(TNtuple);
 ROOT_TNTUPLED_DECLARATIONVIRT(TNtupleD);
+ROOT_TOBJECT_DECLARATIONVIRT(TRandom);
 ROOT_TOBJECT_DECLARATIONVIRT(TRint);
 ROOT_TOBJECT_DECLARATIONVIRT(TApplication);
 ROOT_TOBJECT_DECLARATIONVIRT(TSlider);
@@ -1581,6 +1593,7 @@
 ROOT_TQOBJECT_DECLARATIONVIRT(TPad);
 ROOT_TQOBJECT_DECLARATIONVIRT(TVirtualPad);
 ROOT_TQOBJECT_DECLARATIONVIRT(TQObject);
+ROOT_TRANDOM_DECLARATIONVIRT(TRandom);
 ROOT_TRINT_DECLARATIONVIRT(TRint);
 ROOT_TSPHE_DECLARATIONVIRT(TSPHE);
 ROOT_TSHAPE_DECLARATIONVIRT(TXTRU);
@@ -1827,6 +1840,8 @@
 ROOT_TAPPLICATION_DECLARATIONNONVIRT(TApplication);
 
 ROOT_TRINT_DECLARATIONNONVIRT(TRint);
+
+ROOT_TRANDOM_DECLARATIONNONVIRT(TRandom);
 
 
 #ifdef __cplusplus
diff --git a/example/histadd.hs b/example/histadd.hs
--- a/example/histadd.hs
+++ b/example/histadd.hs
@@ -1,20 +1,18 @@
 module Main where
 
-import Data.Random
-import Data.Random.Distribution.Normal
-
-import HROOT.Type
-import HROOT.Class
-import HROOT.AddOn
+import HROOT
 
 main = do 
   tcanvas <- newTCanvas "test" "test" 640 480
   
   h1 <- newTH1F "test" "test" 100 (-10.0) 10.0  
   h2 <- newTH1F "test" "test" 100 (-10.0) 10.0 
-  
-  let dist1 = Normal (0 :: Double) (2 :: Double) 
-      dist2 = Normal (3 :: Double) (1 :: Double)
+
+  tRandom <- newTRandom 65535
+
+  let dist1 = gaus tRandom 0 2 
+      dist2 = gaus tRandom 3 1 
+
   let go n | n < 0 = return () 
            | otherwise = do 
                histfill dist1 h1 
@@ -37,9 +35,9 @@
   return () 
 
           
-histfill :: Normal Double -> TH1F -> IO () 
+histfill :: IO Double -> TH1F -> IO () 
 histfill dist hist = do 
-  x <- sample dist 
+  x <- dist 
   fill1 hist x 
   return () 
 
diff --git a/example/random1d.hs b/example/random1d.hs
--- a/example/random1d.hs
+++ b/example/random1d.hs
@@ -2,23 +2,20 @@
 
 import Control.Monad
 
-import Data.Random 
-import Data.Random.Distribution.Normal
-
-import HROOT.Type
-import HROOT.Class 
-import HROOT.AddOn
+import HROOT
 
 main :: IO () 
 main = do 
   tcanvas <- newTCanvas "Test" "Test" 640 480
   h1 <- newTH1F "test" "test" 100 (-5.0) 5.0 
 
-  let dist = (Normal (0 :: Double) (2 :: Double)) 
+  tRandom <- newTRandom 65535
 
+  let generator = gaus tRandom 0 2
+
   let go n | n < 0 = return () 
            | otherwise = do 
-               histfill dist h1
+               histfill generator h1
                go (n-1) 
 
   go 1000000
@@ -31,8 +28,8 @@
 
 
 
-histfill :: Normal Double -> TH1F ->  IO () 
-histfill dist hist = do 
-  x <- sample dist 
+histfill :: IO Double -> TH1F ->  IO () 
+histfill gen hist = do 
+  x <- gen
   fill1 hist x
   return () 
diff --git a/example/random2d.hs b/example/random2d.hs
--- a/example/random2d.hs
+++ b/example/random2d.hs
@@ -2,24 +2,20 @@
 
 import Control.Monad
 
-import Data.Random 
-import Data.Random.Distribution.Normal
-
-import HROOT.Type
-import HROOT.Class 
-import HROOT.AddOn
+import HROOT
 
 main :: IO () 
 main = do 
   tcanvas <- newTCanvas "Test" "Test" 640 480
   h2 <- newTH2F "test" "test" 100 (-5.0) 5.0 100 (-5.0) 5.0 
 
-  let dist1 = Normal (0 :: Double) (2 :: Double)
-      dist2 = Normal (0 :: Double) (2 :: Double)
+  tRandom <- newTRandom 65535
 
+  let generator = gaus tRandom 0 2 
+
   let go n | n < 0 = return () 
            | otherwise = do 
-               histfill dist1 dist2 h2
+               histfill generator generator h2
                go (n-1) 
 
   go 1000000
@@ -32,9 +28,9 @@
 
 
 
-histfill :: Normal Double -> Normal Double-> TH2F ->  IO () 
+histfill :: IO Double -> IO Double-> TH2F ->  IO () 
 histfill dist1 dist2 hist = do 
-  x <- sample dist1
-  y <- sample dist2
+  x <- dist1
+  y <- dist2
   fill2 hist x y 
   return () 
diff --git a/example/random2dApp.hs b/example/random2dApp.hs
--- a/example/random2dApp.hs
+++ b/example/random2dApp.hs
@@ -2,12 +2,7 @@
 
 import Control.Monad
 
-import Data.Random 
-import Data.Random.Distribution.Normal
-
-import HROOT.Type
-import HROOT.Class 
-import HROOT.AddOn
+import HROOT
 
 main :: IO () 
 main = do 
@@ -15,9 +10,10 @@
   tapp <- newTApplication "test" [0] ["test"]
   tcanvas <- newTCanvas "Test" "Test" 640 480
   h2 <- newTH2F "test" "test" 100 (-5.0) 5.0 100 (-5.0) 5.0 
+  tRandom <- newTRandom 65535
 
-  let dist1 = Normal (0 :: Double) (2 :: Double)
-      dist2 = Normal (0 :: Double) (2 :: Double)
+  let dist1 = gaus tRandom 0 2 
+      dist2 = gaus tRandom 0 2 
 
   let go n | n < 0 = return () 
            | otherwise = do 
@@ -32,9 +28,9 @@
 
 
 
-histfill :: Normal Double -> Normal Double-> TH2F ->  IO () 
+histfill :: IO Double -> IO Double-> TH2F ->  IO () 
 histfill dist1 dist2 hist = do 
-  x <- sample dist1
-  y <- sample dist2
+  x <- dist1
+  y <- dist2
   fill2 hist x y 
   return () 
diff --git a/example/saveAsROOT.hs b/example/saveAsROOT.hs
--- a/example/saveAsROOT.hs
+++ b/example/saveAsROOT.hs
@@ -1,8 +1,6 @@
 module Main where
 
-import HROOT.Type
-import HROOT.Class
-import HROOT.AddOn
+import HROOT
 
 main = do 
   tcanvas <- newTCanvas "test" "test" 640 480
diff --git a/src/HROOT.hs b/src/HROOT.hs
--- a/src/HROOT.hs
+++ b/src/HROOT.hs
@@ -18,20 +18,19 @@
 --
 --   HROOT package can be installed without ROOT, but it won't work. 
 --   Examples are in example directory in the package.
---   Some examples are using @random-fu@ package. 
 
 
 module HROOT (
-  module HROOT.Type,
-  module HROOT.Class,
-  module HROOT.Function, 
+  module HROOT.Class.Interface,
+  module HROOT.Class.Implementation,
+  module HROOT.Class.FFI, 
   module HROOT.AddOn
 ) where
 
 
 
-import HROOT.Type
-import HROOT.Class
-import HROOT.Function
+import HROOT.Class.Interface
+import HROOT.Class.Implementation
+import HROOT.Class.FFI
 import HROOT.AddOn 
 
diff --git a/src/HROOT/Class.hs b/src/HROOT/Class.hs
deleted file mode 100644
--- a/src/HROOT/Class.hs
+++ /dev/null
@@ -1,3760 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, 
-             FlexibleInstances, TypeSynonymInstances, UndecidableInstances, 
-             EmptyDataDecls, IncoherentInstances #-}
-
-
-module HROOT.Class where
-
--- import Foreign.C            
-import Foreign.Ptr
-import Foreign.ForeignPtr
-
-import System.IO.Unsafe
-
-import HROOT.Type
-import HROOT.Function
-
-class IDeletable a where
-    delete :: a -> IO () 
-
-class ITObject a where
-    getName :: a -> IO String 
-    draw :: a -> String -> IO () 
-    findObject :: a -> String -> IO TObject 
-    saveAs :: a -> String -> String -> IO () 
-    write :: a -> String -> Int -> Int -> IO Int 
-
-class ITNamed a where
-    setTitle :: a -> String -> IO () 
-
-class ITFormula a where
-    getParameter :: a -> Int -> IO Double 
-    setParameter :: a -> Int -> Double -> IO () 
-
-class ITAtt3D a where
-
-class ITAttAxis a where
-    setLabelColor :: a -> Int -> IO () 
-    setLabelSize :: a -> Double -> IO () 
-    setTickLength :: a -> Double -> IO () 
-    setTitleOffset :: a -> Double -> IO () 
-    setNdivisions :: a -> Int -> Int -> IO () 
-
-class ITAttBBox a where
-
-class ITAttCanvas a where
-
-class ITAttFill a where
-    setFillColor :: a -> Int -> IO () 
-    setFillStyle :: a -> Int -> IO () 
-
-class ITAttImage a where
-
-class ITAttLine a where
-    setLineColor :: a -> Int -> IO () 
-
-class ITAttMarker a where
-
-class ITAttPad a where
-
-class ITAttParticle a where
-
-class ITAttText a where
-    setTextColor :: a -> Int -> IO () 
-    setTextAlign :: a -> Int -> IO () 
-    setTextSize :: a -> Double -> IO () 
-
-class ITHStack a where
-
-class ITF1 a where
-
-class ITGraph a where
-
-class ITGraphAsymmErrors a where
-
-class ITCutG a where
-
-class ITGraphBentErrors a where
-
-class ITGraphErrors a where
-
-class ITGraphPolar a where
-
-class ITGraphQQ a where
-
-class ITEllipse a where
-
-class ITArc a where
-
-class ITCrown a where
-
-class ITLine a where
-
-class ITArrow a where
-
-class ITGaxis a where
-
-class ITShape a where
-
-class ITBRIK a where
-
-class ITTUBE a where
-
-class ITPCON a where
-
-class ITSPHE a where
-
-class ITXTRU a where
-
-class ITBox a where
-
-class ITPave a where
-
-class ITPaveText a where
-
-class ITDiamond a where
-
-class ITPaveStats a where
-
-class ITPavesText a where
-
-class ITLegend a where
-
-class ITPaveLabel a where
-
-class ITPaveClass a where
-
-class ITWbox a where
-    setBorderMode :: a -> Int -> IO () 
-
-class ITFrame a where
-
-class ITSliderBox a where
-
-class ITTree a where
-
-class ITChain a where
-
-class ITNtuple a where
-
-class ITNtupleD a where
-
-class ITTreeSQL a where
-
-class ITPolyLine a where
-
-class ITCurlyLine a where
-
-class ITCurlyArc a where
-
-class ITEfficiency a where
-
-class ITAxis a where
-
-class ITLatex a where
-
-class ITText a where
-
-class ITDirectory a where
-    close :: a -> String -> IO () 
-
-class ITDirectoryFile a where
-
-class ITFile a where
-
-class ITBranch a where
-
-class ITVirtualTreePlayer a where
-
-class ITTreePlayer a where
-
-class ITArray a where
-
-class ITArrayC a where
-
-class ITArrayD a where
-
-class ITArrayF a where
-
-class ITArrayI a where
-
-class ITArrayL a where
-
-class ITArrayL64 a where
-
-class ITArrayS a where
-
-class ITH1 a where
-    add :: (ITH1 c0, FPtr c0) => a -> c0 -> Double -> IO () 
-    addBinContent :: a -> Int -> Double -> IO () 
-    chi2Test :: (ITH1 c0, FPtr c0) => a -> c0 -> String -> [Double] -> IO Double 
-    computeIntegral :: a -> IO Double 
-    directoryAutoAdd :: (ITDirectory c0, FPtr c0) => a -> c0 -> IO () 
-    distancetoPrimitive :: a -> Int -> Int -> IO Int 
-    divide :: (ITH2 c1, FPtr c1, ITH1 c0, FPtr c0) => a -> c0 -> c1 -> Double -> Double -> String -> IO () 
-    drawCopy :: a -> String -> IO a 
-    drawNormalized :: a -> String -> Double -> IO TH1 
-    drawPanel :: a -> IO () 
-    bufferEmpty :: a -> Int -> IO Int 
-    eval :: (ITF1 c0, FPtr c0) => a -> c0 -> String -> IO () 
-    executeEvent :: a -> Int -> Int -> Int -> IO () 
-    fFT :: (ITH1 c0, FPtr c0) => a -> c0 -> String -> IO TH1 
-    fill1 :: a -> Double -> IO Int 
-    fillN :: a -> Int -> [Double] -> [Double] -> Int -> IO () 
-    fillRandom :: (ITH1 c0, FPtr c0) => a -> c0 -> Int -> IO () 
-    findBin :: a -> Double -> Double -> Double -> IO Int 
-    findFixBin :: a -> Double -> Double -> Double -> IO Int 
-    findFirstBinAbove :: a -> Double -> Int -> IO Int 
-    findLastBinAbove :: a -> Double -> Int -> IO Int 
-    fitPanel :: a -> IO () 
-    getNdivisions :: a -> String -> IO Int 
-    getAxisColor :: a -> String -> IO Int 
-    getLabelColor :: a -> String -> IO Int 
-    getLabelFont :: a -> String -> IO Int 
-    getLabelOffset :: a -> String -> IO Double 
-    getLabelSize :: a -> String -> IO Double 
-    getTitleFont :: a -> String -> IO Int 
-    getTitleOffset :: a -> String -> IO Double 
-    getTitleSize :: a -> String -> IO Double 
-    getTickLength :: a -> String -> IO Double 
-    getBarOffset :: a -> IO Double 
-    getBarWidth :: a -> IO Double 
-    getContour :: a -> [Double] -> IO Int 
-    getContourLevel :: a -> Int -> IO Double 
-    getContourLevelPad :: a -> Int -> IO Double 
-    getBin :: a -> Int -> Int -> Int -> IO Int 
-    getBinCenter :: a -> Int -> IO Double 
-    getBinContent1 :: a -> Int -> IO Double 
-    getBinContent2 :: a -> Int -> Int -> IO Double 
-    getBinContent3 :: a -> Int -> Int -> Int -> IO Double 
-    getBinError1 :: a -> Int -> IO Double 
-    getBinError2 :: a -> Int -> Int -> IO Double 
-    getBinError3 :: a -> Int -> Int -> Int -> IO Double 
-    getBinLowEdge :: a -> Int -> IO Double 
-    getBinWidth :: a -> Int -> IO Double 
-    getCellContent :: a -> Int -> Int -> IO Double 
-    getCellError :: a -> Int -> Int -> IO Double 
-
-class ITH2 a where
-    fill2 :: a -> Double -> Double -> IO Int 
-
-class ITH3 a where
-
-class ITH1C a where
-
-class ITH1D a where
-
-class ITH1F a where
-
-class ITH1I a where
-
-class ITH1S a where
-
-class ITH2C a where
-
-class ITH2D a where
-
-class ITH2F a where
-
-class ITH2I a where
-
-class ITH2Poly a where
-
-class ITH2S a where
-
-class ITH3C a where
-
-class ITH3D a where
-
-class ITH3F a where
-
-class ITH3I a where
-
-class ITH3S a where
-
-class ITQObject a where
-
-class ITVirtualPad a where
-    getFrame :: a -> IO TFrame 
-    range :: a -> Double -> Double -> Double -> Double -> IO () 
-
-class ITPad a where
-
-class ITButton a where
-
-class ITGroupButton a where
-
-class ITCanvas a where
-
-class ITDialogCanvas a where
-
-class ITInspectCanvas a where
-
-class ITEvePad a where
-
-class ITSlider a where
-
-class ITApplication a where
-    run :: a -> Int -> IO () 
-
-class ITRint a where
-
-
-
-instance (ITObject a, FPtr a) => Castable a (Ptr RawTObject) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITNamed a, FPtr a) => Castable a (Ptr RawTNamed) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITFormula a, FPtr a) => Castable a (Ptr RawTFormula) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAtt3D a, FPtr a) => Castable a (Ptr RawTAtt3D) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttAxis a, FPtr a) => Castable a (Ptr RawTAttAxis) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttBBox a, FPtr a) => Castable a (Ptr RawTAttBBox) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttCanvas a, FPtr a) => Castable a (Ptr RawTAttCanvas) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttFill a, FPtr a) => Castable a (Ptr RawTAttFill) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttImage a, FPtr a) => Castable a (Ptr RawTAttImage) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttLine a, FPtr a) => Castable a (Ptr RawTAttLine) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttMarker a, FPtr a) => Castable a (Ptr RawTAttMarker) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttPad a, FPtr a) => Castable a (Ptr RawTAttPad) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttParticle a, FPtr a) => Castable a (Ptr RawTAttParticle) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAttText a, FPtr a) => Castable a (Ptr RawTAttText) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITHStack a, FPtr a) => Castable a (Ptr RawTHStack) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITF1 a, FPtr a) => Castable a (Ptr RawTF1) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITGraph a, FPtr a) => Castable a (Ptr RawTGraph) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITGraphAsymmErrors a, FPtr a) => Castable a (Ptr RawTGraphAsymmErrors) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITCutG a, FPtr a) => Castable a (Ptr RawTCutG) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITGraphBentErrors a, FPtr a) => Castable a (Ptr RawTGraphBentErrors) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITGraphErrors a, FPtr a) => Castable a (Ptr RawTGraphErrors) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITGraphPolar a, FPtr a) => Castable a (Ptr RawTGraphPolar) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITGraphQQ a, FPtr a) => Castable a (Ptr RawTGraphQQ) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITEllipse a, FPtr a) => Castable a (Ptr RawTEllipse) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArc a, FPtr a) => Castable a (Ptr RawTArc) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITCrown a, FPtr a) => Castable a (Ptr RawTCrown) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITLine a, FPtr a) => Castable a (Ptr RawTLine) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArrow a, FPtr a) => Castable a (Ptr RawTArrow) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITGaxis a, FPtr a) => Castable a (Ptr RawTGaxis) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITShape a, FPtr a) => Castable a (Ptr RawTShape) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITBRIK a, FPtr a) => Castable a (Ptr RawTBRIK) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITTUBE a, FPtr a) => Castable a (Ptr RawTTUBE) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITPCON a, FPtr a) => Castable a (Ptr RawTPCON) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITSPHE a, FPtr a) => Castable a (Ptr RawTSPHE) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITXTRU a, FPtr a) => Castable a (Ptr RawTXTRU) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITBox a, FPtr a) => Castable a (Ptr RawTBox) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITPave a, FPtr a) => Castable a (Ptr RawTPave) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITPaveText a, FPtr a) => Castable a (Ptr RawTPaveText) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITDiamond a, FPtr a) => Castable a (Ptr RawTDiamond) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITPaveStats a, FPtr a) => Castable a (Ptr RawTPaveStats) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITPavesText a, FPtr a) => Castable a (Ptr RawTPavesText) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITLegend a, FPtr a) => Castable a (Ptr RawTLegend) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITPaveLabel a, FPtr a) => Castable a (Ptr RawTPaveLabel) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITPaveClass a, FPtr a) => Castable a (Ptr RawTPaveClass) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITWbox a, FPtr a) => Castable a (Ptr RawTWbox) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITFrame a, FPtr a) => Castable a (Ptr RawTFrame) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITSliderBox a, FPtr a) => Castable a (Ptr RawTSliderBox) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITTree a, FPtr a) => Castable a (Ptr RawTTree) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITChain a, FPtr a) => Castable a (Ptr RawTChain) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITNtuple a, FPtr a) => Castable a (Ptr RawTNtuple) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITNtupleD a, FPtr a) => Castable a (Ptr RawTNtupleD) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITTreeSQL a, FPtr a) => Castable a (Ptr RawTTreeSQL) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITPolyLine a, FPtr a) => Castable a (Ptr RawTPolyLine) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITCurlyLine a, FPtr a) => Castable a (Ptr RawTCurlyLine) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITCurlyArc a, FPtr a) => Castable a (Ptr RawTCurlyArc) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITEfficiency a, FPtr a) => Castable a (Ptr RawTEfficiency) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITAxis a, FPtr a) => Castable a (Ptr RawTAxis) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITLatex a, FPtr a) => Castable a (Ptr RawTLatex) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITText a, FPtr a) => Castable a (Ptr RawTText) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITDirectory a, FPtr a) => Castable a (Ptr RawTDirectory) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITDirectoryFile a, FPtr a) => Castable a (Ptr RawTDirectoryFile) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITFile a, FPtr a) => Castable a (Ptr RawTFile) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITBranch a, FPtr a) => Castable a (Ptr RawTBranch) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITVirtualTreePlayer a, FPtr a) => Castable a (Ptr RawTVirtualTreePlayer) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITTreePlayer a, FPtr a) => Castable a (Ptr RawTTreePlayer) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArray a, FPtr a) => Castable a (Ptr RawTArray) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArrayC a, FPtr a) => Castable a (Ptr RawTArrayC) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArrayD a, FPtr a) => Castable a (Ptr RawTArrayD) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArrayF a, FPtr a) => Castable a (Ptr RawTArrayF) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArrayI a, FPtr a) => Castable a (Ptr RawTArrayI) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArrayL a, FPtr a) => Castable a (Ptr RawTArrayL) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArrayL64 a, FPtr a) => Castable a (Ptr RawTArrayL64) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITArrayS a, FPtr a) => Castable a (Ptr RawTArrayS) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH1 a, FPtr a) => Castable a (Ptr RawTH1) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH2 a, FPtr a) => Castable a (Ptr RawTH2) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH3 a, FPtr a) => Castable a (Ptr RawTH3) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH1C a, FPtr a) => Castable a (Ptr RawTH1C) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH1D a, FPtr a) => Castable a (Ptr RawTH1D) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH1F a, FPtr a) => Castable a (Ptr RawTH1F) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH1I a, FPtr a) => Castable a (Ptr RawTH1I) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH1S a, FPtr a) => Castable a (Ptr RawTH1S) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH2C a, FPtr a) => Castable a (Ptr RawTH2C) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH2D a, FPtr a) => Castable a (Ptr RawTH2D) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH2F a, FPtr a) => Castable a (Ptr RawTH2F) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH2I a, FPtr a) => Castable a (Ptr RawTH2I) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH2Poly a, FPtr a) => Castable a (Ptr RawTH2Poly) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH2S a, FPtr a) => Castable a (Ptr RawTH2S) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH3C a, FPtr a) => Castable a (Ptr RawTH3C) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH3D a, FPtr a) => Castable a (Ptr RawTH3D) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH3F a, FPtr a) => Castable a (Ptr RawTH3F) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH3I a, FPtr a) => Castable a (Ptr RawTH3I) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITH3S a, FPtr a) => Castable a (Ptr RawTH3S) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITQObject a, FPtr a) => Castable a (Ptr RawTQObject) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITVirtualPad a, FPtr a) => Castable a (Ptr RawTVirtualPad) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITPad a, FPtr a) => Castable a (Ptr RawTPad) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITButton a, FPtr a) => Castable a (Ptr RawTButton) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITGroupButton a, FPtr a) => Castable a (Ptr RawTGroupButton) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITCanvas a, FPtr a) => Castable a (Ptr RawTCanvas) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITDialogCanvas a, FPtr a) => Castable a (Ptr RawTDialogCanvas) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITInspectCanvas a, FPtr a) => Castable a (Ptr RawTInspectCanvas) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITEvePad a, FPtr a) => Castable a (Ptr RawTEvePad) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITSlider a, FPtr a) => Castable a (Ptr RawTSlider) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITApplication a, FPtr a) => Castable a (Ptr RawTApplication) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-instance (ITRint a, FPtr a) => Castable a (Ptr RawTRint) where
-  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
-  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
-
-
-
-instance ITObject TObject where
-  getName = xform0 c_tobject_getname
-  draw = xform1 c_tobject_draw
-  findObject = xform1 c_tobject_findobject
-  saveAs = xform2 c_tobject_saveas
-  write = xform3 c_tobject_write
-
-instance ITNamed TNamed where
-  setTitle = xform1 c_tnamed_settitle
-
-instance ITFormula TFormula where
-  getParameter = xform1 c_tformula_getparameter
-  setParameter = xform2 c_tformula_setparameter
-
-instance ITAtt3D TAtt3D where
-
-instance ITAttAxis TAttAxis where
-  setLabelColor = xform1 c_tattaxis_setlabelcolor
-  setLabelSize = xform1 c_tattaxis_setlabelsize
-  setTickLength = xform1 c_tattaxis_setticklength
-  setTitleOffset = xform1 c_tattaxis_settitleoffset
-  setNdivisions = xform2 c_tattaxis_setndivisions
-
-instance ITAttBBox TAttBBox where
-
-instance ITAttCanvas TAttCanvas where
-
-instance ITAttFill TAttFill where
-  setFillColor = xform1 c_tattfill_setfillcolor
-  setFillStyle = xform1 c_tattfill_setfillstyle
-
-instance ITAttImage TAttImage where
-
-instance ITAttLine TAttLine where
-  setLineColor = xform1 c_tattline_setlinecolor
-
-instance ITAttMarker TAttMarker where
-
-instance ITAttPad TAttPad where
-
-instance ITAttParticle TAttParticle where
-
-instance ITAttText TAttText where
-  setTextColor = xform1 c_tatttext_settextcolor
-  setTextAlign = xform1 c_tatttext_settextalign
-  setTextSize = xform1 c_tatttext_settextsize
-
-instance ITHStack THStack where
-
-instance ITF1 TF1 where
-
-instance ITGraph TGraph where
-
-instance ITGraphAsymmErrors TGraphAsymmErrors where
-
-instance ITCutG TCutG where
-
-instance ITGraphBentErrors TGraphBentErrors where
-
-instance ITGraphErrors TGraphErrors where
-
-instance ITGraphPolar TGraphPolar where
-
-instance ITGraphQQ TGraphQQ where
-
-instance ITEllipse TEllipse where
-
-instance ITArc TArc where
-
-instance ITCrown TCrown where
-
-instance ITLine TLine where
-
-instance ITArrow TArrow where
-
-instance ITGaxis TGaxis where
-
-instance ITShape TShape where
-
-instance ITBRIK TBRIK where
-
-instance ITTUBE TTUBE where
-
-instance ITPCON TPCON where
-
-instance ITSPHE TSPHE where
-
-instance ITXTRU TXTRU where
-
-instance ITBox TBox where
-
-instance ITPave TPave where
-
-instance ITPaveText TPaveText where
-
-instance ITDiamond TDiamond where
-
-instance ITPaveStats TPaveStats where
-
-instance ITPavesText TPavesText where
-
-instance ITLegend TLegend where
-
-instance ITPaveLabel TPaveLabel where
-
-instance ITPaveClass TPaveClass where
-
-instance ITWbox TWbox where
-  setBorderMode = xform1 c_twbox_setbordermode
-
-instance ITFrame TFrame where
-
-instance ITSliderBox TSliderBox where
-
-instance ITTree TTree where
-
-instance ITChain TChain where
-
-instance ITNtuple TNtuple where
-
-instance ITNtupleD TNtupleD where
-
-instance ITTreeSQL TTreeSQL where
-
-instance ITPolyLine TPolyLine where
-
-instance ITCurlyLine TCurlyLine where
-
-instance ITCurlyArc TCurlyArc where
-
-instance ITEfficiency TEfficiency where
-
-instance ITAxis TAxis where
-
-instance ITLatex TLatex where
-
-instance ITText TText where
-
-instance ITDirectory TDirectory where
-  close = xform1 c_tdirectory_close
-
-instance ITDirectoryFile TDirectoryFile where
-
-instance ITFile TFile where
-
-instance ITBranch TBranch where
-
-instance ITVirtualTreePlayer TVirtualTreePlayer where
-
-instance ITTreePlayer TTreePlayer where
-
-instance ITArray TArray where
-
-instance ITArrayC TArrayC where
-
-instance ITArrayD TArrayD where
-
-instance ITArrayF TArrayF where
-
-instance ITArrayI TArrayI where
-
-instance ITArrayL TArrayL where
-
-instance ITArrayL64 TArrayL64 where
-
-instance ITArrayS TArrayS where
-
-instance ITH1 TH1 where
-  add = xform2 c_th1_add
-  addBinContent = xform2 c_th1_addbincontent
-  chi2Test = xform3 c_th1_chi2test
-  computeIntegral = xform0 c_th1_computeintegral
-  directoryAutoAdd = xform1 c_th1_directoryautoadd
-  distancetoPrimitive = xform2 c_th1_distancetoprimitive
-  divide = xform5 c_th1_divide
-  drawCopy = xform1 c_th1_drawcopy
-  drawNormalized = xform2 c_th1_drawnormalized
-  drawPanel = xform0 c_th1_drawpanel
-  bufferEmpty = xform1 c_th1_bufferempty
-  eval = xform2 c_th1_eval
-  executeEvent = xform3 c_th1_executeevent
-  fFT = xform2 c_th1_fft
-  fill1 = xform1 c_th1_fill1
-  fillN = xform4 c_th1_filln
-  fillRandom = xform2 c_th1_fillrandom
-  findBin = xform3 c_th1_findbin
-  findFixBin = xform3 c_th1_findfixbin
-  findFirstBinAbove = xform2 c_th1_findfirstbinabove
-  findLastBinAbove = xform2 c_th1_findlastbinabove
-  fitPanel = xform0 c_th1_fitpanel
-  getNdivisions = xform1 c_th1_getndivisions
-  getAxisColor = xform1 c_th1_getaxiscolor
-  getLabelColor = xform1 c_th1_getlabelcolor
-  getLabelFont = xform1 c_th1_getlabelfont
-  getLabelOffset = xform1 c_th1_getlabeloffset
-  getLabelSize = xform1 c_th1_getlabelsize
-  getTitleFont = xform1 c_th1_gettitlefont
-  getTitleOffset = xform1 c_th1_gettitleoffset
-  getTitleSize = xform1 c_th1_gettitlesize
-  getTickLength = xform1 c_th1_getticklength
-  getBarOffset = xform0 c_th1_getbaroffset
-  getBarWidth = xform0 c_th1_getbarwidth
-  getContour = xform1 c_th1_getcontour
-  getContourLevel = xform1 c_th1_getcontourlevel
-  getContourLevelPad = xform1 c_th1_getcontourlevelpad
-  getBin = xform3 c_th1_getbin
-  getBinCenter = xform1 c_th1_getbincenter
-  getBinContent1 = xform1 c_th1_getbincontent1
-  getBinContent2 = xform2 c_th1_getbincontent2
-  getBinContent3 = xform3 c_th1_getbincontent3
-  getBinError1 = xform1 c_th1_getbinerror1
-  getBinError2 = xform2 c_th1_getbinerror2
-  getBinError3 = xform3 c_th1_getbinerror3
-  getBinLowEdge = xform1 c_th1_getbinlowedge
-  getBinWidth = xform1 c_th1_getbinwidth
-  getCellContent = xform2 c_th1_getcellcontent
-  getCellError = xform2 c_th1_getcellerror
-
-instance ITH2 TH2 where
-  fill2 = xform2 c_th2_fill2
-
-instance ITH3 TH3 where
-
-instance ITH1C TH1C where
-
-instance ITH1D TH1D where
-
-instance ITH1F TH1F where
-
-instance ITH1I TH1I where
-
-instance ITH1S TH1S where
-
-instance ITH2C TH2C where
-
-instance ITH2D TH2D where
-
-instance ITH2F TH2F where
-
-instance ITH2I TH2I where
-
-instance ITH2Poly TH2Poly where
-
-instance ITH2S TH2S where
-
-instance ITH3C TH3C where
-
-instance ITH3D TH3D where
-
-instance ITH3F TH3F where
-
-instance ITH3I TH3I where
-
-instance ITH3S TH3S where
-
-instance ITQObject TQObject where
-
-instance ITVirtualPad TVirtualPad where
-  getFrame = xform0 c_tvirtualpad_getframe
-  range = xform4 c_tvirtualpad_range
-
-instance ITPad TPad where
-
-instance ITButton TButton where
-
-instance ITGroupButton TGroupButton where
-
-instance ITCanvas TCanvas where
-
-instance ITDialogCanvas TDialogCanvas where
-
-instance ITInspectCanvas TInspectCanvas where
-
-instance ITEvePad TEvePad where
-
-instance ITSlider TSlider where
-
-instance ITApplication TApplication where
-  run = xform1 c_tapplication_run
-
-instance ITRint TRint where
-
-instance IDeletable TRint where
-  delete = xform0 c_trint_delete
-instance IDeletable TApplication where
-  delete = xform0 c_tapplication_delete
-instance IDeletable TSlider where
-  delete = xform0 c_tslider_delete
-instance IDeletable TEvePad where
-  delete = xform0 c_tevepad_delete
-instance IDeletable TInspectCanvas where
-  delete = xform0 c_tinspectcanvas_delete
-instance IDeletable TDialogCanvas where
-  delete = xform0 c_tdialogcanvas_delete
-instance IDeletable TCanvas where
-  delete = xform0 c_tcanvas_delete
-instance IDeletable TGroupButton where
-  delete = xform0 c_tgroupbutton_delete
-instance IDeletable TButton where
-  delete = xform0 c_tbutton_delete
-instance IDeletable TPad where
-  delete = xform0 c_tpad_delete
-instance IDeletable TVirtualPad where
-  delete = xform0 c_tvirtualpad_delete
-instance IDeletable TQObject where
-  delete = xform0 c_tqobject_delete
-instance IDeletable TH3S where
-  delete = xform0 c_th3s_delete
-instance IDeletable TH3I where
-  delete = xform0 c_th3i_delete
-instance IDeletable TH3F where
-  delete = xform0 c_th3f_delete
-instance IDeletable TH3D where
-  delete = xform0 c_th3d_delete
-instance IDeletable TH3C where
-  delete = xform0 c_th3c_delete
-instance IDeletable TH2S where
-  delete = xform0 c_th2s_delete
-instance IDeletable TH2Poly where
-  delete = xform0 c_th2poly_delete
-instance IDeletable TH2I where
-  delete = xform0 c_th2i_delete
-instance IDeletable TH2F where
-  delete = xform0 c_th2f_delete
-instance IDeletable TH2D where
-  delete = xform0 c_th2d_delete
-instance IDeletable TH2C where
-  delete = xform0 c_th2c_delete
-instance IDeletable TH1S where
-  delete = xform0 c_th1s_delete
-instance IDeletable TH1I where
-  delete = xform0 c_th1i_delete
-instance IDeletable TH1F where
-  delete = xform0 c_th1f_delete
-instance IDeletable TH1D where
-  delete = xform0 c_th1d_delete
-instance IDeletable TH1C where
-  delete = xform0 c_th1c_delete
-instance IDeletable TH3 where
-  delete = xform0 c_th3_delete
-instance IDeletable TH2 where
-  delete = xform0 c_th2_delete
-instance IDeletable TH1 where
-  delete = xform0 c_th1_delete
-instance IDeletable TArrayS where
-  delete = xform0 c_tarrays_delete
-instance IDeletable TArrayL64 where
-  delete = xform0 c_tarrayl64_delete
-instance IDeletable TArrayL where
-  delete = xform0 c_tarrayl_delete
-instance IDeletable TArrayI where
-  delete = xform0 c_tarrayi_delete
-instance IDeletable TArrayF where
-  delete = xform0 c_tarrayf_delete
-instance IDeletable TArrayD where
-  delete = xform0 c_tarrayd_delete
-instance IDeletable TArrayC where
-  delete = xform0 c_tarrayc_delete
-instance IDeletable TArray where
-  delete = xform0 c_tarray_delete
-instance IDeletable TTreePlayer where
-  delete = xform0 c_ttreeplayer_delete
-instance IDeletable TVirtualTreePlayer where
-  delete = xform0 c_tvirtualtreeplayer_delete
-instance IDeletable TBranch where
-  delete = xform0 c_tbranch_delete
-instance IDeletable TFile where
-  delete = xform0 c_tfile_delete
-instance IDeletable TDirectoryFile where
-  delete = xform0 c_tdirectoryfile_delete
-instance IDeletable TDirectory where
-  delete = xform0 c_tdirectory_delete
-instance IDeletable TText where
-  delete = xform0 c_ttext_delete
-instance IDeletable TLatex where
-  delete = xform0 c_tlatex_delete
-instance IDeletable TAxis where
-  delete = xform0 c_taxis_delete
-instance IDeletable TEfficiency where
-  delete = xform0 c_tefficiency_delete
-instance IDeletable TCurlyArc where
-  delete = xform0 c_tcurlyarc_delete
-instance IDeletable TCurlyLine where
-  delete = xform0 c_tcurlyline_delete
-instance IDeletable TPolyLine where
-  delete = xform0 c_tpolyline_delete
-instance IDeletable TTreeSQL where
-  delete = xform0 c_ttreesql_delete
-instance IDeletable TNtupleD where
-  delete = xform0 c_tntupled_delete
-instance IDeletable TNtuple where
-  delete = xform0 c_tntuple_delete
-instance IDeletable TChain where
-  delete = xform0 c_tchain_delete
-instance IDeletable TTree where
-  delete = xform0 c_ttree_delete
-instance IDeletable TSliderBox where
-  delete = xform0 c_tsliderbox_delete
-instance IDeletable TFrame where
-  delete = xform0 c_tframe_delete
-instance IDeletable TWbox where
-  delete = xform0 c_twbox_delete
-instance IDeletable TPaveClass where
-  delete = xform0 c_tpaveclass_delete
-instance IDeletable TPaveLabel where
-  delete = xform0 c_tpavelabel_delete
-instance IDeletable TLegend where
-  delete = xform0 c_tlegend_delete
-instance IDeletable TPavesText where
-  delete = xform0 c_tpavestext_delete
-instance IDeletable TPaveStats where
-  delete = xform0 c_tpavestats_delete
-instance IDeletable TDiamond where
-  delete = xform0 c_tdiamond_delete
-instance IDeletable TPaveText where
-  delete = xform0 c_tpavetext_delete
-instance IDeletable TPave where
-  delete = xform0 c_tpave_delete
-instance IDeletable TBox where
-  delete = xform0 c_tbox_delete
-instance IDeletable TXTRU where
-  delete = xform0 c_txtru_delete
-instance IDeletable TSPHE where
-  delete = xform0 c_tsphe_delete
-instance IDeletable TPCON where
-  delete = xform0 c_tpcon_delete
-instance IDeletable TTUBE where
-  delete = xform0 c_ttube_delete
-instance IDeletable TBRIK where
-  delete = xform0 c_tbrik_delete
-instance IDeletable TShape where
-  delete = xform0 c_tshape_delete
-instance IDeletable TGaxis where
-  delete = xform0 c_tgaxis_delete
-instance IDeletable TArrow where
-  delete = xform0 c_tarrow_delete
-instance IDeletable TLine where
-  delete = xform0 c_tline_delete
-instance IDeletable TCrown where
-  delete = xform0 c_tcrown_delete
-instance IDeletable TArc where
-  delete = xform0 c_tarc_delete
-instance IDeletable TEllipse where
-  delete = xform0 c_tellipse_delete
-instance IDeletable TGraphQQ where
-  delete = xform0 c_tgraphqq_delete
-instance IDeletable TGraphPolar where
-  delete = xform0 c_tgraphpolar_delete
-instance IDeletable TGraphErrors where
-  delete = xform0 c_tgrapherrors_delete
-instance IDeletable TGraphBentErrors where
-  delete = xform0 c_tgraphbenterrors_delete
-instance IDeletable TCutG where
-  delete = xform0 c_tcutg_delete
-instance IDeletable TGraphAsymmErrors where
-  delete = xform0 c_tgraphasymmerrors_delete
-instance IDeletable TGraph where
-  delete = xform0 c_tgraph_delete
-instance IDeletable TF1 where
-  delete = xform0 c_tf1_delete
-instance IDeletable THStack where
-  delete = xform0 c_thstack_delete
-instance IDeletable TAttText where
-  delete = xform0 c_tatttext_delete
-instance IDeletable TAttParticle where
-  delete = xform0 c_tattparticle_delete
-instance IDeletable TAttPad where
-  delete = xform0 c_tattpad_delete
-instance IDeletable TAttMarker where
-  delete = xform0 c_tattmarker_delete
-instance IDeletable TAttLine where
-  delete = xform0 c_tattline_delete
-instance IDeletable TAttImage where
-  delete = xform0 c_tattimage_delete
-instance IDeletable TAttFill where
-  delete = xform0 c_tattfill_delete
-instance IDeletable TAttCanvas where
-  delete = xform0 c_tattcanvas_delete
-instance IDeletable TAttBBox where
-  delete = xform0 c_tattbbox_delete
-instance IDeletable TAttAxis where
-  delete = xform0 c_tattaxis_delete
-instance IDeletable TAtt3D where
-  delete = xform0 c_tatt3d_delete
-instance IDeletable TFormula where
-  delete = xform0 c_tformula_delete
-instance IDeletable TNamed where
-  delete = xform0 c_tnamed_delete
-instance IDeletable TObject where
-  delete = xform0 c_tobject_delete
-
-instance ITApplication TRint where
-  run = xform1 c_trint_run
-
-instance ITArray TH3S where
-instance ITArray TH3I where
-instance ITArray TH3F where
-instance ITArray TH3D where
-instance ITArray TH3C where
-instance ITArray TH2S where
-instance ITArray TH2I where
-instance ITArray TH2F where
-instance ITArray TH2D where
-instance ITArray TH2C where
-instance ITArray TH1S where
-instance ITArray TH1I where
-instance ITArray TH1F where
-instance ITArray TH1D where
-instance ITArray TH1C where
-instance ITArray TArrayS where
-instance ITArray TArrayL64 where
-instance ITArray TArrayL where
-instance ITArray TArrayI where
-instance ITArray TArrayF where
-instance ITArray TArrayD where
-instance ITArray TArrayC where
-
-instance ITArrayC TH3C where
-instance ITArrayC TH2C where
-instance ITArrayC TH1C where
-
-instance ITArrayD TH3D where
-instance ITArrayD TH2D where
-instance ITArrayD TH1D where
-
-instance ITArrayF TH3F where
-instance ITArrayF TH2F where
-instance ITArrayF TH1F where
-
-instance ITArrayI TH3I where
-instance ITArrayI TH2I where
-instance ITArrayI TH1I where
-
-instance ITArrayS TH3S where
-instance ITArrayS TH2S where
-instance ITArrayS TH1S where
-
-instance ITAtt3D TH3S where
-instance ITAtt3D TH3I where
-instance ITAtt3D TH3F where
-instance ITAtt3D TH3D where
-instance ITAtt3D TH3C where
-instance ITAtt3D TH3 where
-instance ITAtt3D TXTRU where
-instance ITAtt3D TSPHE where
-instance ITAtt3D TPCON where
-instance ITAtt3D TTUBE where
-instance ITAtt3D TBRIK where
-instance ITAtt3D TShape where
-
-instance ITAttAxis TAxis where
-  setLabelColor = xform1 c_taxis_setlabelcolor
-  setLabelSize = xform1 c_taxis_setlabelsize
-  setTickLength = xform1 c_taxis_setticklength
-  setTitleOffset = xform1 c_taxis_settitleoffset
-  setNdivisions = xform2 c_taxis_setndivisions
-
-instance ITAttFill TSlider where
-  setFillColor = xform1 c_tslider_setfillcolor
-  setFillStyle = xform1 c_tslider_setfillstyle
-instance ITAttFill TEvePad where
-  setFillColor = xform1 c_tevepad_setfillcolor
-  setFillStyle = xform1 c_tevepad_setfillstyle
-instance ITAttFill TInspectCanvas where
-  setFillColor = xform1 c_tinspectcanvas_setfillcolor
-  setFillStyle = xform1 c_tinspectcanvas_setfillstyle
-instance ITAttFill TDialogCanvas where
-  setFillColor = xform1 c_tdialogcanvas_setfillcolor
-  setFillStyle = xform1 c_tdialogcanvas_setfillstyle
-instance ITAttFill TCanvas where
-  setFillColor = xform1 c_tcanvas_setfillcolor
-  setFillStyle = xform1 c_tcanvas_setfillstyle
-instance ITAttFill TGroupButton where
-  setFillColor = xform1 c_tgroupbutton_setfillcolor
-  setFillStyle = xform1 c_tgroupbutton_setfillstyle
-instance ITAttFill TButton where
-  setFillColor = xform1 c_tbutton_setfillcolor
-  setFillStyle = xform1 c_tbutton_setfillstyle
-instance ITAttFill TPad where
-  setFillColor = xform1 c_tpad_setfillcolor
-  setFillStyle = xform1 c_tpad_setfillstyle
-instance ITAttFill TVirtualPad where
-  setFillColor = xform1 c_tvirtualpad_setfillcolor
-  setFillStyle = xform1 c_tvirtualpad_setfillstyle
-instance ITAttFill TH3S where
-  setFillColor = xform1 c_th3s_setfillcolor
-  setFillStyle = xform1 c_th3s_setfillstyle
-instance ITAttFill TH3I where
-  setFillColor = xform1 c_th3i_setfillcolor
-  setFillStyle = xform1 c_th3i_setfillstyle
-instance ITAttFill TH3F where
-  setFillColor = xform1 c_th3f_setfillcolor
-  setFillStyle = xform1 c_th3f_setfillstyle
-instance ITAttFill TH3D where
-  setFillColor = xform1 c_th3d_setfillcolor
-  setFillStyle = xform1 c_th3d_setfillstyle
-instance ITAttFill TH3C where
-  setFillColor = xform1 c_th3c_setfillcolor
-  setFillStyle = xform1 c_th3c_setfillstyle
-instance ITAttFill TH2S where
-  setFillColor = xform1 c_th2s_setfillcolor
-  setFillStyle = xform1 c_th2s_setfillstyle
-instance ITAttFill TH2Poly where
-  setFillColor = xform1 c_th2poly_setfillcolor
-  setFillStyle = xform1 c_th2poly_setfillstyle
-instance ITAttFill TH2I where
-  setFillColor = xform1 c_th2i_setfillcolor
-  setFillStyle = xform1 c_th2i_setfillstyle
-instance ITAttFill TH2F where
-  setFillColor = xform1 c_th2f_setfillcolor
-  setFillStyle = xform1 c_th2f_setfillstyle
-instance ITAttFill TH2D where
-  setFillColor = xform1 c_th2d_setfillcolor
-  setFillStyle = xform1 c_th2d_setfillstyle
-instance ITAttFill TH2C where
-  setFillColor = xform1 c_th2c_setfillcolor
-  setFillStyle = xform1 c_th2c_setfillstyle
-instance ITAttFill TH1S where
-  setFillColor = xform1 c_th1s_setfillcolor
-  setFillStyle = xform1 c_th1s_setfillstyle
-instance ITAttFill TH1I where
-  setFillColor = xform1 c_th1i_setfillcolor
-  setFillStyle = xform1 c_th1i_setfillstyle
-instance ITAttFill TH1F where
-  setFillColor = xform1 c_th1f_setfillcolor
-  setFillStyle = xform1 c_th1f_setfillstyle
-instance ITAttFill TH1D where
-  setFillColor = xform1 c_th1d_setfillcolor
-  setFillStyle = xform1 c_th1d_setfillstyle
-instance ITAttFill TH1C where
-  setFillColor = xform1 c_th1c_setfillcolor
-  setFillStyle = xform1 c_th1c_setfillstyle
-instance ITAttFill TH3 where
-  setFillColor = xform1 c_th3_setfillcolor
-  setFillStyle = xform1 c_th3_setfillstyle
-instance ITAttFill TH2 where
-  setFillColor = xform1 c_th2_setfillcolor
-  setFillStyle = xform1 c_th2_setfillstyle
-instance ITAttFill TH1 where
-  setFillColor = xform1 c_th1_setfillcolor
-  setFillStyle = xform1 c_th1_setfillstyle
-instance ITAttFill TBranch where
-  setFillColor = xform1 c_tbranch_setfillcolor
-  setFillStyle = xform1 c_tbranch_setfillstyle
-instance ITAttFill TEfficiency where
-  setFillColor = xform1 c_tefficiency_setfillcolor
-  setFillStyle = xform1 c_tefficiency_setfillstyle
-instance ITAttFill TCurlyArc where
-  setFillColor = xform1 c_tcurlyarc_setfillcolor
-  setFillStyle = xform1 c_tcurlyarc_setfillstyle
-instance ITAttFill TCurlyLine where
-  setFillColor = xform1 c_tcurlyline_setfillcolor
-  setFillStyle = xform1 c_tcurlyline_setfillstyle
-instance ITAttFill TPolyLine where
-  setFillColor = xform1 c_tpolyline_setfillcolor
-  setFillStyle = xform1 c_tpolyline_setfillstyle
-instance ITAttFill TTreeSQL where
-  setFillColor = xform1 c_ttreesql_setfillcolor
-  setFillStyle = xform1 c_ttreesql_setfillstyle
-instance ITAttFill TNtupleD where
-  setFillColor = xform1 c_tntupled_setfillcolor
-  setFillStyle = xform1 c_tntupled_setfillstyle
-instance ITAttFill TNtuple where
-  setFillColor = xform1 c_tntuple_setfillcolor
-  setFillStyle = xform1 c_tntuple_setfillstyle
-instance ITAttFill TChain where
-  setFillColor = xform1 c_tchain_setfillcolor
-  setFillStyle = xform1 c_tchain_setfillstyle
-instance ITAttFill TTree where
-  setFillColor = xform1 c_ttree_setfillcolor
-  setFillStyle = xform1 c_ttree_setfillstyle
-instance ITAttFill TSliderBox where
-  setFillColor = xform1 c_tsliderbox_setfillcolor
-  setFillStyle = xform1 c_tsliderbox_setfillstyle
-instance ITAttFill TFrame where
-  setFillColor = xform1 c_tframe_setfillcolor
-  setFillStyle = xform1 c_tframe_setfillstyle
-instance ITAttFill TWbox where
-  setFillColor = xform1 c_twbox_setfillcolor
-  setFillStyle = xform1 c_twbox_setfillstyle
-instance ITAttFill TPaveClass where
-  setFillColor = xform1 c_tpaveclass_setfillcolor
-  setFillStyle = xform1 c_tpaveclass_setfillstyle
-instance ITAttFill TPaveLabel where
-  setFillColor = xform1 c_tpavelabel_setfillcolor
-  setFillStyle = xform1 c_tpavelabel_setfillstyle
-instance ITAttFill TLegend where
-  setFillColor = xform1 c_tlegend_setfillcolor
-  setFillStyle = xform1 c_tlegend_setfillstyle
-instance ITAttFill TPavesText where
-  setFillColor = xform1 c_tpavestext_setfillcolor
-  setFillStyle = xform1 c_tpavestext_setfillstyle
-instance ITAttFill TPaveStats where
-  setFillColor = xform1 c_tpavestats_setfillcolor
-  setFillStyle = xform1 c_tpavestats_setfillstyle
-instance ITAttFill TDiamond where
-  setFillColor = xform1 c_tdiamond_setfillcolor
-  setFillStyle = xform1 c_tdiamond_setfillstyle
-instance ITAttFill TPaveText where
-  setFillColor = xform1 c_tpavetext_setfillcolor
-  setFillStyle = xform1 c_tpavetext_setfillstyle
-instance ITAttFill TPave where
-  setFillColor = xform1 c_tpave_setfillcolor
-  setFillStyle = xform1 c_tpave_setfillstyle
-instance ITAttFill TBox where
-  setFillColor = xform1 c_tbox_setfillcolor
-  setFillStyle = xform1 c_tbox_setfillstyle
-instance ITAttFill TXTRU where
-  setFillColor = xform1 c_txtru_setfillcolor
-  setFillStyle = xform1 c_txtru_setfillstyle
-instance ITAttFill TSPHE where
-  setFillColor = xform1 c_tsphe_setfillcolor
-  setFillStyle = xform1 c_tsphe_setfillstyle
-instance ITAttFill TPCON where
-  setFillColor = xform1 c_tpcon_setfillcolor
-  setFillStyle = xform1 c_tpcon_setfillstyle
-instance ITAttFill TTUBE where
-  setFillColor = xform1 c_ttube_setfillcolor
-  setFillStyle = xform1 c_ttube_setfillstyle
-instance ITAttFill TBRIK where
-  setFillColor = xform1 c_tbrik_setfillcolor
-  setFillStyle = xform1 c_tbrik_setfillstyle
-instance ITAttFill TShape where
-  setFillColor = xform1 c_tshape_setfillcolor
-  setFillStyle = xform1 c_tshape_setfillstyle
-instance ITAttFill TArrow where
-  setFillColor = xform1 c_tarrow_setfillcolor
-  setFillStyle = xform1 c_tarrow_setfillstyle
-instance ITAttFill TCrown where
-  setFillColor = xform1 c_tcrown_setfillcolor
-  setFillStyle = xform1 c_tcrown_setfillstyle
-instance ITAttFill TArc where
-  setFillColor = xform1 c_tarc_setfillcolor
-  setFillStyle = xform1 c_tarc_setfillstyle
-instance ITAttFill TEllipse where
-  setFillColor = xform1 c_tellipse_setfillcolor
-  setFillStyle = xform1 c_tellipse_setfillstyle
-instance ITAttFill TGraphQQ where
-  setFillColor = xform1 c_tgraphqq_setfillcolor
-  setFillStyle = xform1 c_tgraphqq_setfillstyle
-instance ITAttFill TGraphPolar where
-  setFillColor = xform1 c_tgraphpolar_setfillcolor
-  setFillStyle = xform1 c_tgraphpolar_setfillstyle
-instance ITAttFill TGraphErrors where
-  setFillColor = xform1 c_tgrapherrors_setfillcolor
-  setFillStyle = xform1 c_tgrapherrors_setfillstyle
-instance ITAttFill TGraphBentErrors where
-  setFillColor = xform1 c_tgraphbenterrors_setfillcolor
-  setFillStyle = xform1 c_tgraphbenterrors_setfillstyle
-instance ITAttFill TCutG where
-  setFillColor = xform1 c_tcutg_setfillcolor
-  setFillStyle = xform1 c_tcutg_setfillstyle
-instance ITAttFill TGraphAsymmErrors where
-  setFillColor = xform1 c_tgraphasymmerrors_setfillcolor
-  setFillStyle = xform1 c_tgraphasymmerrors_setfillstyle
-instance ITAttFill TGraph where
-  setFillColor = xform1 c_tgraph_setfillcolor
-  setFillStyle = xform1 c_tgraph_setfillstyle
-instance ITAttFill TF1 where
-  setFillColor = xform1 c_tf1_setfillcolor
-  setFillStyle = xform1 c_tf1_setfillstyle
-
-instance ITAttLine TSlider where
-  setLineColor = xform1 c_tslider_setlinecolor
-instance ITAttLine TEvePad where
-  setLineColor = xform1 c_tevepad_setlinecolor
-instance ITAttLine TInspectCanvas where
-  setLineColor = xform1 c_tinspectcanvas_setlinecolor
-instance ITAttLine TDialogCanvas where
-  setLineColor = xform1 c_tdialogcanvas_setlinecolor
-instance ITAttLine TCanvas where
-  setLineColor = xform1 c_tcanvas_setlinecolor
-instance ITAttLine TGroupButton where
-  setLineColor = xform1 c_tgroupbutton_setlinecolor
-instance ITAttLine TButton where
-  setLineColor = xform1 c_tbutton_setlinecolor
-instance ITAttLine TPad where
-  setLineColor = xform1 c_tpad_setlinecolor
-instance ITAttLine TVirtualPad where
-  setLineColor = xform1 c_tvirtualpad_setlinecolor
-instance ITAttLine TH3S where
-  setLineColor = xform1 c_th3s_setlinecolor
-instance ITAttLine TH3I where
-  setLineColor = xform1 c_th3i_setlinecolor
-instance ITAttLine TH3F where
-  setLineColor = xform1 c_th3f_setlinecolor
-instance ITAttLine TH3D where
-  setLineColor = xform1 c_th3d_setlinecolor
-instance ITAttLine TH3C where
-  setLineColor = xform1 c_th3c_setlinecolor
-instance ITAttLine TH2S where
-  setLineColor = xform1 c_th2s_setlinecolor
-instance ITAttLine TH2Poly where
-  setLineColor = xform1 c_th2poly_setlinecolor
-instance ITAttLine TH2I where
-  setLineColor = xform1 c_th2i_setlinecolor
-instance ITAttLine TH2F where
-  setLineColor = xform1 c_th2f_setlinecolor
-instance ITAttLine TH2D where
-  setLineColor = xform1 c_th2d_setlinecolor
-instance ITAttLine TH2C where
-  setLineColor = xform1 c_th2c_setlinecolor
-instance ITAttLine TH1S where
-  setLineColor = xform1 c_th1s_setlinecolor
-instance ITAttLine TH1I where
-  setLineColor = xform1 c_th1i_setlinecolor
-instance ITAttLine TH1F where
-  setLineColor = xform1 c_th1f_setlinecolor
-instance ITAttLine TH1D where
-  setLineColor = xform1 c_th1d_setlinecolor
-instance ITAttLine TH1C where
-  setLineColor = xform1 c_th1c_setlinecolor
-instance ITAttLine TH3 where
-  setLineColor = xform1 c_th3_setlinecolor
-instance ITAttLine TH2 where
-  setLineColor = xform1 c_th2_setlinecolor
-instance ITAttLine TH1 where
-  setLineColor = xform1 c_th1_setlinecolor
-instance ITAttLine TLatex where
-  setLineColor = xform1 c_tlatex_setlinecolor
-instance ITAttLine TEfficiency where
-  setLineColor = xform1 c_tefficiency_setlinecolor
-instance ITAttLine TCurlyArc where
-  setLineColor = xform1 c_tcurlyarc_setlinecolor
-instance ITAttLine TCurlyLine where
-  setLineColor = xform1 c_tcurlyline_setlinecolor
-instance ITAttLine TPolyLine where
-  setLineColor = xform1 c_tpolyline_setlinecolor
-instance ITAttLine TTreeSQL where
-  setLineColor = xform1 c_ttreesql_setlinecolor
-instance ITAttLine TNtupleD where
-  setLineColor = xform1 c_tntupled_setlinecolor
-instance ITAttLine TNtuple where
-  setLineColor = xform1 c_tntuple_setlinecolor
-instance ITAttLine TChain where
-  setLineColor = xform1 c_tchain_setlinecolor
-instance ITAttLine TTree where
-  setLineColor = xform1 c_ttree_setlinecolor
-instance ITAttLine TSliderBox where
-  setLineColor = xform1 c_tsliderbox_setlinecolor
-instance ITAttLine TFrame where
-  setLineColor = xform1 c_tframe_setlinecolor
-instance ITAttLine TWbox where
-  setLineColor = xform1 c_twbox_setlinecolor
-instance ITAttLine TPaveClass where
-  setLineColor = xform1 c_tpaveclass_setlinecolor
-instance ITAttLine TPaveLabel where
-  setLineColor = xform1 c_tpavelabel_setlinecolor
-instance ITAttLine TLegend where
-  setLineColor = xform1 c_tlegend_setlinecolor
-instance ITAttLine TPavesText where
-  setLineColor = xform1 c_tpavestext_setlinecolor
-instance ITAttLine TPaveStats where
-  setLineColor = xform1 c_tpavestats_setlinecolor
-instance ITAttLine TDiamond where
-  setLineColor = xform1 c_tdiamond_setlinecolor
-instance ITAttLine TPaveText where
-  setLineColor = xform1 c_tpavetext_setlinecolor
-instance ITAttLine TPave where
-  setLineColor = xform1 c_tpave_setlinecolor
-instance ITAttLine TBox where
-  setLineColor = xform1 c_tbox_setlinecolor
-instance ITAttLine TXTRU where
-  setLineColor = xform1 c_txtru_setlinecolor
-instance ITAttLine TSPHE where
-  setLineColor = xform1 c_tsphe_setlinecolor
-instance ITAttLine TPCON where
-  setLineColor = xform1 c_tpcon_setlinecolor
-instance ITAttLine TTUBE where
-  setLineColor = xform1 c_ttube_setlinecolor
-instance ITAttLine TBRIK where
-  setLineColor = xform1 c_tbrik_setlinecolor
-instance ITAttLine TShape where
-  setLineColor = xform1 c_tshape_setlinecolor
-instance ITAttLine TGaxis where
-  setLineColor = xform1 c_tgaxis_setlinecolor
-instance ITAttLine TArrow where
-  setLineColor = xform1 c_tarrow_setlinecolor
-instance ITAttLine TLine where
-  setLineColor = xform1 c_tline_setlinecolor
-instance ITAttLine TCrown where
-  setLineColor = xform1 c_tcrown_setlinecolor
-instance ITAttLine TArc where
-  setLineColor = xform1 c_tarc_setlinecolor
-instance ITAttLine TEllipse where
-  setLineColor = xform1 c_tellipse_setlinecolor
-instance ITAttLine TGraphQQ where
-  setLineColor = xform1 c_tgraphqq_setlinecolor
-instance ITAttLine TGraphPolar where
-  setLineColor = xform1 c_tgraphpolar_setlinecolor
-instance ITAttLine TGraphErrors where
-  setLineColor = xform1 c_tgrapherrors_setlinecolor
-instance ITAttLine TGraphBentErrors where
-  setLineColor = xform1 c_tgraphbenterrors_setlinecolor
-instance ITAttLine TCutG where
-  setLineColor = xform1 c_tcutg_setlinecolor
-instance ITAttLine TGraphAsymmErrors where
-  setLineColor = xform1 c_tgraphasymmerrors_setlinecolor
-instance ITAttLine TGraph where
-  setLineColor = xform1 c_tgraph_setlinecolor
-instance ITAttLine TF1 where
-  setLineColor = xform1 c_tf1_setlinecolor
-
-instance ITAttMarker TH3S where
-instance ITAttMarker TH3I where
-instance ITAttMarker TH3F where
-instance ITAttMarker TH3D where
-instance ITAttMarker TH3C where
-instance ITAttMarker TH2S where
-instance ITAttMarker TH2Poly where
-instance ITAttMarker TH2I where
-instance ITAttMarker TH2F where
-instance ITAttMarker TH2D where
-instance ITAttMarker TH2C where
-instance ITAttMarker TH1S where
-instance ITAttMarker TH1I where
-instance ITAttMarker TH1F where
-instance ITAttMarker TH1D where
-instance ITAttMarker TH1C where
-instance ITAttMarker TH3 where
-instance ITAttMarker TH2 where
-instance ITAttMarker TH1 where
-instance ITAttMarker TEfficiency where
-instance ITAttMarker TTreeSQL where
-instance ITAttMarker TNtupleD where
-instance ITAttMarker TNtuple where
-instance ITAttMarker TChain where
-instance ITAttMarker TTree where
-instance ITAttMarker TGraphQQ where
-instance ITAttMarker TGraphPolar where
-instance ITAttMarker TGraphErrors where
-instance ITAttMarker TGraphBentErrors where
-instance ITAttMarker TCutG where
-instance ITAttMarker TGraphAsymmErrors where
-instance ITAttMarker TGraph where
-
-instance ITAttPad TSlider where
-instance ITAttPad TEvePad where
-instance ITAttPad TInspectCanvas where
-instance ITAttPad TDialogCanvas where
-instance ITAttPad TCanvas where
-instance ITAttPad TGroupButton where
-instance ITAttPad TButton where
-instance ITAttPad TPad where
-instance ITAttPad TVirtualPad where
-
-instance ITAttText TInspectCanvas where
-  setTextColor = xform1 c_tinspectcanvas_settextcolor
-  setTextAlign = xform1 c_tinspectcanvas_settextalign
-  setTextSize = xform1 c_tinspectcanvas_settextsize
-instance ITAttText TDialogCanvas where
-  setTextColor = xform1 c_tdialogcanvas_settextcolor
-  setTextAlign = xform1 c_tdialogcanvas_settextalign
-  setTextSize = xform1 c_tdialogcanvas_settextsize
-instance ITAttText TGroupButton where
-  setTextColor = xform1 c_tgroupbutton_settextcolor
-  setTextAlign = xform1 c_tgroupbutton_settextalign
-  setTextSize = xform1 c_tgroupbutton_settextsize
-instance ITAttText TButton where
-  setTextColor = xform1 c_tbutton_settextcolor
-  setTextAlign = xform1 c_tbutton_settextalign
-  setTextSize = xform1 c_tbutton_settextsize
-instance ITAttText TText where
-  setTextColor = xform1 c_ttext_settextcolor
-  setTextAlign = xform1 c_ttext_settextalign
-  setTextSize = xform1 c_ttext_settextsize
-instance ITAttText TLatex where
-  setTextColor = xform1 c_tlatex_settextcolor
-  setTextAlign = xform1 c_tlatex_settextalign
-  setTextSize = xform1 c_tlatex_settextsize
-instance ITAttText TPaveClass where
-  setTextColor = xform1 c_tpaveclass_settextcolor
-  setTextAlign = xform1 c_tpaveclass_settextalign
-  setTextSize = xform1 c_tpaveclass_settextsize
-instance ITAttText TPaveLabel where
-  setTextColor = xform1 c_tpavelabel_settextcolor
-  setTextAlign = xform1 c_tpavelabel_settextalign
-  setTextSize = xform1 c_tpavelabel_settextsize
-instance ITAttText TLegend where
-  setTextColor = xform1 c_tlegend_settextcolor
-  setTextAlign = xform1 c_tlegend_settextalign
-  setTextSize = xform1 c_tlegend_settextsize
-instance ITAttText TPavesText where
-  setTextColor = xform1 c_tpavestext_settextcolor
-  setTextAlign = xform1 c_tpavestext_settextalign
-  setTextSize = xform1 c_tpavestext_settextsize
-instance ITAttText TPaveStats where
-  setTextColor = xform1 c_tpavestats_settextcolor
-  setTextAlign = xform1 c_tpavestats_settextalign
-  setTextSize = xform1 c_tpavestats_settextsize
-instance ITAttText TDiamond where
-  setTextColor = xform1 c_tdiamond_settextcolor
-  setTextAlign = xform1 c_tdiamond_settextalign
-  setTextSize = xform1 c_tdiamond_settextsize
-instance ITAttText TPaveText where
-  setTextColor = xform1 c_tpavetext_settextcolor
-  setTextAlign = xform1 c_tpavetext_settextalign
-  setTextSize = xform1 c_tpavetext_settextsize
-instance ITAttText TGaxis where
-  setTextColor = xform1 c_tgaxis_settextcolor
-  setTextAlign = xform1 c_tgaxis_settextalign
-  setTextSize = xform1 c_tgaxis_settextsize
-
-instance ITBox TSliderBox where
-instance ITBox TFrame where
-instance ITBox TWbox where
-instance ITBox TPaveClass where
-instance ITBox TPaveLabel where
-instance ITBox TLegend where
-instance ITBox TPavesText where
-instance ITBox TPaveStats where
-instance ITBox TDiamond where
-instance ITBox TPaveText where
-instance ITBox TPave where
-
-instance ITButton TGroupButton where
-
-instance ITCanvas TInspectCanvas where
-instance ITCanvas TDialogCanvas where
-
-instance ITCurlyLine TCurlyArc where
-
-instance ITDirectory TFile where
-  close = xform1 c_tfile_close
-instance ITDirectory TDirectoryFile where
-  close = xform1 c_tdirectoryfile_close
-
-instance ITDirectoryFile TFile where
-
-instance ITEllipse TCrown where
-instance ITEllipse TArc where
-
-instance ITFormula TF1 where
-  getParameter = xform1 c_tf1_getparameter
-  setParameter = xform2 c_tf1_setparameter
-
-instance ITGraph TGraphQQ where
-instance ITGraph TGraphPolar where
-instance ITGraph TGraphErrors where
-instance ITGraph TGraphBentErrors where
-instance ITGraph TCutG where
-instance ITGraph TGraphAsymmErrors where
-
-instance ITGraphErrors TGraphPolar where
-
-instance ITH1 TH3S where
-  add = xform2 c_th3s_add
-  addBinContent = xform2 c_th3s_addbincontent
-  chi2Test = xform3 c_th3s_chi2test
-  computeIntegral = xform0 c_th3s_computeintegral
-  directoryAutoAdd = xform1 c_th3s_directoryautoadd
-  distancetoPrimitive = xform2 c_th3s_distancetoprimitive
-  divide = xform5 c_th3s_divide
-  drawCopy = xform1 c_th3s_drawcopy
-  drawNormalized = xform2 c_th3s_drawnormalized
-  drawPanel = xform0 c_th3s_drawpanel
-  bufferEmpty = xform1 c_th3s_bufferempty
-  eval = xform2 c_th3s_eval
-  executeEvent = xform3 c_th3s_executeevent
-  fFT = xform2 c_th3s_fft
-  fill1 = xform1 c_th3s_fill1
-  fillN = xform4 c_th3s_filln
-  fillRandom = xform2 c_th3s_fillrandom
-  findBin = xform3 c_th3s_findbin
-  findFixBin = xform3 c_th3s_findfixbin
-  findFirstBinAbove = xform2 c_th3s_findfirstbinabove
-  findLastBinAbove = xform2 c_th3s_findlastbinabove
-  fitPanel = xform0 c_th3s_fitpanel
-  getNdivisions = xform1 c_th3s_getndivisions
-  getAxisColor = xform1 c_th3s_getaxiscolor
-  getLabelColor = xform1 c_th3s_getlabelcolor
-  getLabelFont = xform1 c_th3s_getlabelfont
-  getLabelOffset = xform1 c_th3s_getlabeloffset
-  getLabelSize = xform1 c_th3s_getlabelsize
-  getTitleFont = xform1 c_th3s_gettitlefont
-  getTitleOffset = xform1 c_th3s_gettitleoffset
-  getTitleSize = xform1 c_th3s_gettitlesize
-  getTickLength = xform1 c_th3s_getticklength
-  getBarOffset = xform0 c_th3s_getbaroffset
-  getBarWidth = xform0 c_th3s_getbarwidth
-  getContour = xform1 c_th3s_getcontour
-  getContourLevel = xform1 c_th3s_getcontourlevel
-  getContourLevelPad = xform1 c_th3s_getcontourlevelpad
-  getBin = xform3 c_th3s_getbin
-  getBinCenter = xform1 c_th3s_getbincenter
-  getBinContent1 = xform1 c_th3s_getbincontent1
-  getBinContent2 = xform2 c_th3s_getbincontent2
-  getBinContent3 = xform3 c_th3s_getbincontent3
-  getBinError1 = xform1 c_th3s_getbinerror1
-  getBinError2 = xform2 c_th3s_getbinerror2
-  getBinError3 = xform3 c_th3s_getbinerror3
-  getBinLowEdge = xform1 c_th3s_getbinlowedge
-  getBinWidth = xform1 c_th3s_getbinwidth
-  getCellContent = xform2 c_th3s_getcellcontent
-  getCellError = xform2 c_th3s_getcellerror
-instance ITH1 TH3I where
-  add = xform2 c_th3i_add
-  addBinContent = xform2 c_th3i_addbincontent
-  chi2Test = xform3 c_th3i_chi2test
-  computeIntegral = xform0 c_th3i_computeintegral
-  directoryAutoAdd = xform1 c_th3i_directoryautoadd
-  distancetoPrimitive = xform2 c_th3i_distancetoprimitive
-  divide = xform5 c_th3i_divide
-  drawCopy = xform1 c_th3i_drawcopy
-  drawNormalized = xform2 c_th3i_drawnormalized
-  drawPanel = xform0 c_th3i_drawpanel
-  bufferEmpty = xform1 c_th3i_bufferempty
-  eval = xform2 c_th3i_eval
-  executeEvent = xform3 c_th3i_executeevent
-  fFT = xform2 c_th3i_fft
-  fill1 = xform1 c_th3i_fill1
-  fillN = xform4 c_th3i_filln
-  fillRandom = xform2 c_th3i_fillrandom
-  findBin = xform3 c_th3i_findbin
-  findFixBin = xform3 c_th3i_findfixbin
-  findFirstBinAbove = xform2 c_th3i_findfirstbinabove
-  findLastBinAbove = xform2 c_th3i_findlastbinabove
-  fitPanel = xform0 c_th3i_fitpanel
-  getNdivisions = xform1 c_th3i_getndivisions
-  getAxisColor = xform1 c_th3i_getaxiscolor
-  getLabelColor = xform1 c_th3i_getlabelcolor
-  getLabelFont = xform1 c_th3i_getlabelfont
-  getLabelOffset = xform1 c_th3i_getlabeloffset
-  getLabelSize = xform1 c_th3i_getlabelsize
-  getTitleFont = xform1 c_th3i_gettitlefont
-  getTitleOffset = xform1 c_th3i_gettitleoffset
-  getTitleSize = xform1 c_th3i_gettitlesize
-  getTickLength = xform1 c_th3i_getticklength
-  getBarOffset = xform0 c_th3i_getbaroffset
-  getBarWidth = xform0 c_th3i_getbarwidth
-  getContour = xform1 c_th3i_getcontour
-  getContourLevel = xform1 c_th3i_getcontourlevel
-  getContourLevelPad = xform1 c_th3i_getcontourlevelpad
-  getBin = xform3 c_th3i_getbin
-  getBinCenter = xform1 c_th3i_getbincenter
-  getBinContent1 = xform1 c_th3i_getbincontent1
-  getBinContent2 = xform2 c_th3i_getbincontent2
-  getBinContent3 = xform3 c_th3i_getbincontent3
-  getBinError1 = xform1 c_th3i_getbinerror1
-  getBinError2 = xform2 c_th3i_getbinerror2
-  getBinError3 = xform3 c_th3i_getbinerror3
-  getBinLowEdge = xform1 c_th3i_getbinlowedge
-  getBinWidth = xform1 c_th3i_getbinwidth
-  getCellContent = xform2 c_th3i_getcellcontent
-  getCellError = xform2 c_th3i_getcellerror
-instance ITH1 TH3F where
-  add = xform2 c_th3f_add
-  addBinContent = xform2 c_th3f_addbincontent
-  chi2Test = xform3 c_th3f_chi2test
-  computeIntegral = xform0 c_th3f_computeintegral
-  directoryAutoAdd = xform1 c_th3f_directoryautoadd
-  distancetoPrimitive = xform2 c_th3f_distancetoprimitive
-  divide = xform5 c_th3f_divide
-  drawCopy = xform1 c_th3f_drawcopy
-  drawNormalized = xform2 c_th3f_drawnormalized
-  drawPanel = xform0 c_th3f_drawpanel
-  bufferEmpty = xform1 c_th3f_bufferempty
-  eval = xform2 c_th3f_eval
-  executeEvent = xform3 c_th3f_executeevent
-  fFT = xform2 c_th3f_fft
-  fill1 = xform1 c_th3f_fill1
-  fillN = xform4 c_th3f_filln
-  fillRandom = xform2 c_th3f_fillrandom
-  findBin = xform3 c_th3f_findbin
-  findFixBin = xform3 c_th3f_findfixbin
-  findFirstBinAbove = xform2 c_th3f_findfirstbinabove
-  findLastBinAbove = xform2 c_th3f_findlastbinabove
-  fitPanel = xform0 c_th3f_fitpanel
-  getNdivisions = xform1 c_th3f_getndivisions
-  getAxisColor = xform1 c_th3f_getaxiscolor
-  getLabelColor = xform1 c_th3f_getlabelcolor
-  getLabelFont = xform1 c_th3f_getlabelfont
-  getLabelOffset = xform1 c_th3f_getlabeloffset
-  getLabelSize = xform1 c_th3f_getlabelsize
-  getTitleFont = xform1 c_th3f_gettitlefont
-  getTitleOffset = xform1 c_th3f_gettitleoffset
-  getTitleSize = xform1 c_th3f_gettitlesize
-  getTickLength = xform1 c_th3f_getticklength
-  getBarOffset = xform0 c_th3f_getbaroffset
-  getBarWidth = xform0 c_th3f_getbarwidth
-  getContour = xform1 c_th3f_getcontour
-  getContourLevel = xform1 c_th3f_getcontourlevel
-  getContourLevelPad = xform1 c_th3f_getcontourlevelpad
-  getBin = xform3 c_th3f_getbin
-  getBinCenter = xform1 c_th3f_getbincenter
-  getBinContent1 = xform1 c_th3f_getbincontent1
-  getBinContent2 = xform2 c_th3f_getbincontent2
-  getBinContent3 = xform3 c_th3f_getbincontent3
-  getBinError1 = xform1 c_th3f_getbinerror1
-  getBinError2 = xform2 c_th3f_getbinerror2
-  getBinError3 = xform3 c_th3f_getbinerror3
-  getBinLowEdge = xform1 c_th3f_getbinlowedge
-  getBinWidth = xform1 c_th3f_getbinwidth
-  getCellContent = xform2 c_th3f_getcellcontent
-  getCellError = xform2 c_th3f_getcellerror
-instance ITH1 TH3D where
-  add = xform2 c_th3d_add
-  addBinContent = xform2 c_th3d_addbincontent
-  chi2Test = xform3 c_th3d_chi2test
-  computeIntegral = xform0 c_th3d_computeintegral
-  directoryAutoAdd = xform1 c_th3d_directoryautoadd
-  distancetoPrimitive = xform2 c_th3d_distancetoprimitive
-  divide = xform5 c_th3d_divide
-  drawCopy = xform1 c_th3d_drawcopy
-  drawNormalized = xform2 c_th3d_drawnormalized
-  drawPanel = xform0 c_th3d_drawpanel
-  bufferEmpty = xform1 c_th3d_bufferempty
-  eval = xform2 c_th3d_eval
-  executeEvent = xform3 c_th3d_executeevent
-  fFT = xform2 c_th3d_fft
-  fill1 = xform1 c_th3d_fill1
-  fillN = xform4 c_th3d_filln
-  fillRandom = xform2 c_th3d_fillrandom
-  findBin = xform3 c_th3d_findbin
-  findFixBin = xform3 c_th3d_findfixbin
-  findFirstBinAbove = xform2 c_th3d_findfirstbinabove
-  findLastBinAbove = xform2 c_th3d_findlastbinabove
-  fitPanel = xform0 c_th3d_fitpanel
-  getNdivisions = xform1 c_th3d_getndivisions
-  getAxisColor = xform1 c_th3d_getaxiscolor
-  getLabelColor = xform1 c_th3d_getlabelcolor
-  getLabelFont = xform1 c_th3d_getlabelfont
-  getLabelOffset = xform1 c_th3d_getlabeloffset
-  getLabelSize = xform1 c_th3d_getlabelsize
-  getTitleFont = xform1 c_th3d_gettitlefont
-  getTitleOffset = xform1 c_th3d_gettitleoffset
-  getTitleSize = xform1 c_th3d_gettitlesize
-  getTickLength = xform1 c_th3d_getticklength
-  getBarOffset = xform0 c_th3d_getbaroffset
-  getBarWidth = xform0 c_th3d_getbarwidth
-  getContour = xform1 c_th3d_getcontour
-  getContourLevel = xform1 c_th3d_getcontourlevel
-  getContourLevelPad = xform1 c_th3d_getcontourlevelpad
-  getBin = xform3 c_th3d_getbin
-  getBinCenter = xform1 c_th3d_getbincenter
-  getBinContent1 = xform1 c_th3d_getbincontent1
-  getBinContent2 = xform2 c_th3d_getbincontent2
-  getBinContent3 = xform3 c_th3d_getbincontent3
-  getBinError1 = xform1 c_th3d_getbinerror1
-  getBinError2 = xform2 c_th3d_getbinerror2
-  getBinError3 = xform3 c_th3d_getbinerror3
-  getBinLowEdge = xform1 c_th3d_getbinlowedge
-  getBinWidth = xform1 c_th3d_getbinwidth
-  getCellContent = xform2 c_th3d_getcellcontent
-  getCellError = xform2 c_th3d_getcellerror
-instance ITH1 TH3C where
-  add = xform2 c_th3c_add
-  addBinContent = xform2 c_th3c_addbincontent
-  chi2Test = xform3 c_th3c_chi2test
-  computeIntegral = xform0 c_th3c_computeintegral
-  directoryAutoAdd = xform1 c_th3c_directoryautoadd
-  distancetoPrimitive = xform2 c_th3c_distancetoprimitive
-  divide = xform5 c_th3c_divide
-  drawCopy = xform1 c_th3c_drawcopy
-  drawNormalized = xform2 c_th3c_drawnormalized
-  drawPanel = xform0 c_th3c_drawpanel
-  bufferEmpty = xform1 c_th3c_bufferempty
-  eval = xform2 c_th3c_eval
-  executeEvent = xform3 c_th3c_executeevent
-  fFT = xform2 c_th3c_fft
-  fill1 = xform1 c_th3c_fill1
-  fillN = xform4 c_th3c_filln
-  fillRandom = xform2 c_th3c_fillrandom
-  findBin = xform3 c_th3c_findbin
-  findFixBin = xform3 c_th3c_findfixbin
-  findFirstBinAbove = xform2 c_th3c_findfirstbinabove
-  findLastBinAbove = xform2 c_th3c_findlastbinabove
-  fitPanel = xform0 c_th3c_fitpanel
-  getNdivisions = xform1 c_th3c_getndivisions
-  getAxisColor = xform1 c_th3c_getaxiscolor
-  getLabelColor = xform1 c_th3c_getlabelcolor
-  getLabelFont = xform1 c_th3c_getlabelfont
-  getLabelOffset = xform1 c_th3c_getlabeloffset
-  getLabelSize = xform1 c_th3c_getlabelsize
-  getTitleFont = xform1 c_th3c_gettitlefont
-  getTitleOffset = xform1 c_th3c_gettitleoffset
-  getTitleSize = xform1 c_th3c_gettitlesize
-  getTickLength = xform1 c_th3c_getticklength
-  getBarOffset = xform0 c_th3c_getbaroffset
-  getBarWidth = xform0 c_th3c_getbarwidth
-  getContour = xform1 c_th3c_getcontour
-  getContourLevel = xform1 c_th3c_getcontourlevel
-  getContourLevelPad = xform1 c_th3c_getcontourlevelpad
-  getBin = xform3 c_th3c_getbin
-  getBinCenter = xform1 c_th3c_getbincenter
-  getBinContent1 = xform1 c_th3c_getbincontent1
-  getBinContent2 = xform2 c_th3c_getbincontent2
-  getBinContent3 = xform3 c_th3c_getbincontent3
-  getBinError1 = xform1 c_th3c_getbinerror1
-  getBinError2 = xform2 c_th3c_getbinerror2
-  getBinError3 = xform3 c_th3c_getbinerror3
-  getBinLowEdge = xform1 c_th3c_getbinlowedge
-  getBinWidth = xform1 c_th3c_getbinwidth
-  getCellContent = xform2 c_th3c_getcellcontent
-  getCellError = xform2 c_th3c_getcellerror
-instance ITH1 TH2S where
-  add = xform2 c_th2s_add
-  addBinContent = xform2 c_th2s_addbincontent
-  chi2Test = xform3 c_th2s_chi2test
-  computeIntegral = xform0 c_th2s_computeintegral
-  directoryAutoAdd = xform1 c_th2s_directoryautoadd
-  distancetoPrimitive = xform2 c_th2s_distancetoprimitive
-  divide = xform5 c_th2s_divide
-  drawCopy = xform1 c_th2s_drawcopy
-  drawNormalized = xform2 c_th2s_drawnormalized
-  drawPanel = xform0 c_th2s_drawpanel
-  bufferEmpty = xform1 c_th2s_bufferempty
-  eval = xform2 c_th2s_eval
-  executeEvent = xform3 c_th2s_executeevent
-  fFT = xform2 c_th2s_fft
-  fill1 = xform1 c_th2s_fill1
-  fillN = xform4 c_th2s_filln
-  fillRandom = xform2 c_th2s_fillrandom
-  findBin = xform3 c_th2s_findbin
-  findFixBin = xform3 c_th2s_findfixbin
-  findFirstBinAbove = xform2 c_th2s_findfirstbinabove
-  findLastBinAbove = xform2 c_th2s_findlastbinabove
-  fitPanel = xform0 c_th2s_fitpanel
-  getNdivisions = xform1 c_th2s_getndivisions
-  getAxisColor = xform1 c_th2s_getaxiscolor
-  getLabelColor = xform1 c_th2s_getlabelcolor
-  getLabelFont = xform1 c_th2s_getlabelfont
-  getLabelOffset = xform1 c_th2s_getlabeloffset
-  getLabelSize = xform1 c_th2s_getlabelsize
-  getTitleFont = xform1 c_th2s_gettitlefont
-  getTitleOffset = xform1 c_th2s_gettitleoffset
-  getTitleSize = xform1 c_th2s_gettitlesize
-  getTickLength = xform1 c_th2s_getticklength
-  getBarOffset = xform0 c_th2s_getbaroffset
-  getBarWidth = xform0 c_th2s_getbarwidth
-  getContour = xform1 c_th2s_getcontour
-  getContourLevel = xform1 c_th2s_getcontourlevel
-  getContourLevelPad = xform1 c_th2s_getcontourlevelpad
-  getBin = xform3 c_th2s_getbin
-  getBinCenter = xform1 c_th2s_getbincenter
-  getBinContent1 = xform1 c_th2s_getbincontent1
-  getBinContent2 = xform2 c_th2s_getbincontent2
-  getBinContent3 = xform3 c_th2s_getbincontent3
-  getBinError1 = xform1 c_th2s_getbinerror1
-  getBinError2 = xform2 c_th2s_getbinerror2
-  getBinError3 = xform3 c_th2s_getbinerror3
-  getBinLowEdge = xform1 c_th2s_getbinlowedge
-  getBinWidth = xform1 c_th2s_getbinwidth
-  getCellContent = xform2 c_th2s_getcellcontent
-  getCellError = xform2 c_th2s_getcellerror
-instance ITH1 TH2Poly where
-  add = xform2 c_th2poly_add
-  addBinContent = xform2 c_th2poly_addbincontent
-  chi2Test = xform3 c_th2poly_chi2test
-  computeIntegral = xform0 c_th2poly_computeintegral
-  directoryAutoAdd = xform1 c_th2poly_directoryautoadd
-  distancetoPrimitive = xform2 c_th2poly_distancetoprimitive
-  divide = xform5 c_th2poly_divide
-  drawCopy = xform1 c_th2poly_drawcopy
-  drawNormalized = xform2 c_th2poly_drawnormalized
-  drawPanel = xform0 c_th2poly_drawpanel
-  bufferEmpty = xform1 c_th2poly_bufferempty
-  eval = xform2 c_th2poly_eval
-  executeEvent = xform3 c_th2poly_executeevent
-  fFT = xform2 c_th2poly_fft
-  fill1 = xform1 c_th2poly_fill1
-  fillN = xform4 c_th2poly_filln
-  fillRandom = xform2 c_th2poly_fillrandom
-  findBin = xform3 c_th2poly_findbin
-  findFixBin = xform3 c_th2poly_findfixbin
-  findFirstBinAbove = xform2 c_th2poly_findfirstbinabove
-  findLastBinAbove = xform2 c_th2poly_findlastbinabove
-  fitPanel = xform0 c_th2poly_fitpanel
-  getNdivisions = xform1 c_th2poly_getndivisions
-  getAxisColor = xform1 c_th2poly_getaxiscolor
-  getLabelColor = xform1 c_th2poly_getlabelcolor
-  getLabelFont = xform1 c_th2poly_getlabelfont
-  getLabelOffset = xform1 c_th2poly_getlabeloffset
-  getLabelSize = xform1 c_th2poly_getlabelsize
-  getTitleFont = xform1 c_th2poly_gettitlefont
-  getTitleOffset = xform1 c_th2poly_gettitleoffset
-  getTitleSize = xform1 c_th2poly_gettitlesize
-  getTickLength = xform1 c_th2poly_getticklength
-  getBarOffset = xform0 c_th2poly_getbaroffset
-  getBarWidth = xform0 c_th2poly_getbarwidth
-  getContour = xform1 c_th2poly_getcontour
-  getContourLevel = xform1 c_th2poly_getcontourlevel
-  getContourLevelPad = xform1 c_th2poly_getcontourlevelpad
-  getBin = xform3 c_th2poly_getbin
-  getBinCenter = xform1 c_th2poly_getbincenter
-  getBinContent1 = xform1 c_th2poly_getbincontent1
-  getBinContent2 = xform2 c_th2poly_getbincontent2
-  getBinContent3 = xform3 c_th2poly_getbincontent3
-  getBinError1 = xform1 c_th2poly_getbinerror1
-  getBinError2 = xform2 c_th2poly_getbinerror2
-  getBinError3 = xform3 c_th2poly_getbinerror3
-  getBinLowEdge = xform1 c_th2poly_getbinlowedge
-  getBinWidth = xform1 c_th2poly_getbinwidth
-  getCellContent = xform2 c_th2poly_getcellcontent
-  getCellError = xform2 c_th2poly_getcellerror
-instance ITH1 TH2I where
-  add = xform2 c_th2i_add
-  addBinContent = xform2 c_th2i_addbincontent
-  chi2Test = xform3 c_th2i_chi2test
-  computeIntegral = xform0 c_th2i_computeintegral
-  directoryAutoAdd = xform1 c_th2i_directoryautoadd
-  distancetoPrimitive = xform2 c_th2i_distancetoprimitive
-  divide = xform5 c_th2i_divide
-  drawCopy = xform1 c_th2i_drawcopy
-  drawNormalized = xform2 c_th2i_drawnormalized
-  drawPanel = xform0 c_th2i_drawpanel
-  bufferEmpty = xform1 c_th2i_bufferempty
-  eval = xform2 c_th2i_eval
-  executeEvent = xform3 c_th2i_executeevent
-  fFT = xform2 c_th2i_fft
-  fill1 = xform1 c_th2i_fill1
-  fillN = xform4 c_th2i_filln
-  fillRandom = xform2 c_th2i_fillrandom
-  findBin = xform3 c_th2i_findbin
-  findFixBin = xform3 c_th2i_findfixbin
-  findFirstBinAbove = xform2 c_th2i_findfirstbinabove
-  findLastBinAbove = xform2 c_th2i_findlastbinabove
-  fitPanel = xform0 c_th2i_fitpanel
-  getNdivisions = xform1 c_th2i_getndivisions
-  getAxisColor = xform1 c_th2i_getaxiscolor
-  getLabelColor = xform1 c_th2i_getlabelcolor
-  getLabelFont = xform1 c_th2i_getlabelfont
-  getLabelOffset = xform1 c_th2i_getlabeloffset
-  getLabelSize = xform1 c_th2i_getlabelsize
-  getTitleFont = xform1 c_th2i_gettitlefont
-  getTitleOffset = xform1 c_th2i_gettitleoffset
-  getTitleSize = xform1 c_th2i_gettitlesize
-  getTickLength = xform1 c_th2i_getticklength
-  getBarOffset = xform0 c_th2i_getbaroffset
-  getBarWidth = xform0 c_th2i_getbarwidth
-  getContour = xform1 c_th2i_getcontour
-  getContourLevel = xform1 c_th2i_getcontourlevel
-  getContourLevelPad = xform1 c_th2i_getcontourlevelpad
-  getBin = xform3 c_th2i_getbin
-  getBinCenter = xform1 c_th2i_getbincenter
-  getBinContent1 = xform1 c_th2i_getbincontent1
-  getBinContent2 = xform2 c_th2i_getbincontent2
-  getBinContent3 = xform3 c_th2i_getbincontent3
-  getBinError1 = xform1 c_th2i_getbinerror1
-  getBinError2 = xform2 c_th2i_getbinerror2
-  getBinError3 = xform3 c_th2i_getbinerror3
-  getBinLowEdge = xform1 c_th2i_getbinlowedge
-  getBinWidth = xform1 c_th2i_getbinwidth
-  getCellContent = xform2 c_th2i_getcellcontent
-  getCellError = xform2 c_th2i_getcellerror
-instance ITH1 TH2F where
-  add = xform2 c_th2f_add
-  addBinContent = xform2 c_th2f_addbincontent
-  chi2Test = xform3 c_th2f_chi2test
-  computeIntegral = xform0 c_th2f_computeintegral
-  directoryAutoAdd = xform1 c_th2f_directoryautoadd
-  distancetoPrimitive = xform2 c_th2f_distancetoprimitive
-  divide = xform5 c_th2f_divide
-  drawCopy = xform1 c_th2f_drawcopy
-  drawNormalized = xform2 c_th2f_drawnormalized
-  drawPanel = xform0 c_th2f_drawpanel
-  bufferEmpty = xform1 c_th2f_bufferempty
-  eval = xform2 c_th2f_eval
-  executeEvent = xform3 c_th2f_executeevent
-  fFT = xform2 c_th2f_fft
-  fill1 = xform1 c_th2f_fill1
-  fillN = xform4 c_th2f_filln
-  fillRandom = xform2 c_th2f_fillrandom
-  findBin = xform3 c_th2f_findbin
-  findFixBin = xform3 c_th2f_findfixbin
-  findFirstBinAbove = xform2 c_th2f_findfirstbinabove
-  findLastBinAbove = xform2 c_th2f_findlastbinabove
-  fitPanel = xform0 c_th2f_fitpanel
-  getNdivisions = xform1 c_th2f_getndivisions
-  getAxisColor = xform1 c_th2f_getaxiscolor
-  getLabelColor = xform1 c_th2f_getlabelcolor
-  getLabelFont = xform1 c_th2f_getlabelfont
-  getLabelOffset = xform1 c_th2f_getlabeloffset
-  getLabelSize = xform1 c_th2f_getlabelsize
-  getTitleFont = xform1 c_th2f_gettitlefont
-  getTitleOffset = xform1 c_th2f_gettitleoffset
-  getTitleSize = xform1 c_th2f_gettitlesize
-  getTickLength = xform1 c_th2f_getticklength
-  getBarOffset = xform0 c_th2f_getbaroffset
-  getBarWidth = xform0 c_th2f_getbarwidth
-  getContour = xform1 c_th2f_getcontour
-  getContourLevel = xform1 c_th2f_getcontourlevel
-  getContourLevelPad = xform1 c_th2f_getcontourlevelpad
-  getBin = xform3 c_th2f_getbin
-  getBinCenter = xform1 c_th2f_getbincenter
-  getBinContent1 = xform1 c_th2f_getbincontent1
-  getBinContent2 = xform2 c_th2f_getbincontent2
-  getBinContent3 = xform3 c_th2f_getbincontent3
-  getBinError1 = xform1 c_th2f_getbinerror1
-  getBinError2 = xform2 c_th2f_getbinerror2
-  getBinError3 = xform3 c_th2f_getbinerror3
-  getBinLowEdge = xform1 c_th2f_getbinlowedge
-  getBinWidth = xform1 c_th2f_getbinwidth
-  getCellContent = xform2 c_th2f_getcellcontent
-  getCellError = xform2 c_th2f_getcellerror
-instance ITH1 TH2D where
-  add = xform2 c_th2d_add
-  addBinContent = xform2 c_th2d_addbincontent
-  chi2Test = xform3 c_th2d_chi2test
-  computeIntegral = xform0 c_th2d_computeintegral
-  directoryAutoAdd = xform1 c_th2d_directoryautoadd
-  distancetoPrimitive = xform2 c_th2d_distancetoprimitive
-  divide = xform5 c_th2d_divide
-  drawCopy = xform1 c_th2d_drawcopy
-  drawNormalized = xform2 c_th2d_drawnormalized
-  drawPanel = xform0 c_th2d_drawpanel
-  bufferEmpty = xform1 c_th2d_bufferempty
-  eval = xform2 c_th2d_eval
-  executeEvent = xform3 c_th2d_executeevent
-  fFT = xform2 c_th2d_fft
-  fill1 = xform1 c_th2d_fill1
-  fillN = xform4 c_th2d_filln
-  fillRandom = xform2 c_th2d_fillrandom
-  findBin = xform3 c_th2d_findbin
-  findFixBin = xform3 c_th2d_findfixbin
-  findFirstBinAbove = xform2 c_th2d_findfirstbinabove
-  findLastBinAbove = xform2 c_th2d_findlastbinabove
-  fitPanel = xform0 c_th2d_fitpanel
-  getNdivisions = xform1 c_th2d_getndivisions
-  getAxisColor = xform1 c_th2d_getaxiscolor
-  getLabelColor = xform1 c_th2d_getlabelcolor
-  getLabelFont = xform1 c_th2d_getlabelfont
-  getLabelOffset = xform1 c_th2d_getlabeloffset
-  getLabelSize = xform1 c_th2d_getlabelsize
-  getTitleFont = xform1 c_th2d_gettitlefont
-  getTitleOffset = xform1 c_th2d_gettitleoffset
-  getTitleSize = xform1 c_th2d_gettitlesize
-  getTickLength = xform1 c_th2d_getticklength
-  getBarOffset = xform0 c_th2d_getbaroffset
-  getBarWidth = xform0 c_th2d_getbarwidth
-  getContour = xform1 c_th2d_getcontour
-  getContourLevel = xform1 c_th2d_getcontourlevel
-  getContourLevelPad = xform1 c_th2d_getcontourlevelpad
-  getBin = xform3 c_th2d_getbin
-  getBinCenter = xform1 c_th2d_getbincenter
-  getBinContent1 = xform1 c_th2d_getbincontent1
-  getBinContent2 = xform2 c_th2d_getbincontent2
-  getBinContent3 = xform3 c_th2d_getbincontent3
-  getBinError1 = xform1 c_th2d_getbinerror1
-  getBinError2 = xform2 c_th2d_getbinerror2
-  getBinError3 = xform3 c_th2d_getbinerror3
-  getBinLowEdge = xform1 c_th2d_getbinlowedge
-  getBinWidth = xform1 c_th2d_getbinwidth
-  getCellContent = xform2 c_th2d_getcellcontent
-  getCellError = xform2 c_th2d_getcellerror
-instance ITH1 TH2C where
-  add = xform2 c_th2c_add
-  addBinContent = xform2 c_th2c_addbincontent
-  chi2Test = xform3 c_th2c_chi2test
-  computeIntegral = xform0 c_th2c_computeintegral
-  directoryAutoAdd = xform1 c_th2c_directoryautoadd
-  distancetoPrimitive = xform2 c_th2c_distancetoprimitive
-  divide = xform5 c_th2c_divide
-  drawCopy = xform1 c_th2c_drawcopy
-  drawNormalized = xform2 c_th2c_drawnormalized
-  drawPanel = xform0 c_th2c_drawpanel
-  bufferEmpty = xform1 c_th2c_bufferempty
-  eval = xform2 c_th2c_eval
-  executeEvent = xform3 c_th2c_executeevent
-  fFT = xform2 c_th2c_fft
-  fill1 = xform1 c_th2c_fill1
-  fillN = xform4 c_th2c_filln
-  fillRandom = xform2 c_th2c_fillrandom
-  findBin = xform3 c_th2c_findbin
-  findFixBin = xform3 c_th2c_findfixbin
-  findFirstBinAbove = xform2 c_th2c_findfirstbinabove
-  findLastBinAbove = xform2 c_th2c_findlastbinabove
-  fitPanel = xform0 c_th2c_fitpanel
-  getNdivisions = xform1 c_th2c_getndivisions
-  getAxisColor = xform1 c_th2c_getaxiscolor
-  getLabelColor = xform1 c_th2c_getlabelcolor
-  getLabelFont = xform1 c_th2c_getlabelfont
-  getLabelOffset = xform1 c_th2c_getlabeloffset
-  getLabelSize = xform1 c_th2c_getlabelsize
-  getTitleFont = xform1 c_th2c_gettitlefont
-  getTitleOffset = xform1 c_th2c_gettitleoffset
-  getTitleSize = xform1 c_th2c_gettitlesize
-  getTickLength = xform1 c_th2c_getticklength
-  getBarOffset = xform0 c_th2c_getbaroffset
-  getBarWidth = xform0 c_th2c_getbarwidth
-  getContour = xform1 c_th2c_getcontour
-  getContourLevel = xform1 c_th2c_getcontourlevel
-  getContourLevelPad = xform1 c_th2c_getcontourlevelpad
-  getBin = xform3 c_th2c_getbin
-  getBinCenter = xform1 c_th2c_getbincenter
-  getBinContent1 = xform1 c_th2c_getbincontent1
-  getBinContent2 = xform2 c_th2c_getbincontent2
-  getBinContent3 = xform3 c_th2c_getbincontent3
-  getBinError1 = xform1 c_th2c_getbinerror1
-  getBinError2 = xform2 c_th2c_getbinerror2
-  getBinError3 = xform3 c_th2c_getbinerror3
-  getBinLowEdge = xform1 c_th2c_getbinlowedge
-  getBinWidth = xform1 c_th2c_getbinwidth
-  getCellContent = xform2 c_th2c_getcellcontent
-  getCellError = xform2 c_th2c_getcellerror
-instance ITH1 TH1S where
-  add = xform2 c_th1s_add
-  addBinContent = xform2 c_th1s_addbincontent
-  chi2Test = xform3 c_th1s_chi2test
-  computeIntegral = xform0 c_th1s_computeintegral
-  directoryAutoAdd = xform1 c_th1s_directoryautoadd
-  distancetoPrimitive = xform2 c_th1s_distancetoprimitive
-  divide = xform5 c_th1s_divide
-  drawCopy = xform1 c_th1s_drawcopy
-  drawNormalized = xform2 c_th1s_drawnormalized
-  drawPanel = xform0 c_th1s_drawpanel
-  bufferEmpty = xform1 c_th1s_bufferempty
-  eval = xform2 c_th1s_eval
-  executeEvent = xform3 c_th1s_executeevent
-  fFT = xform2 c_th1s_fft
-  fill1 = xform1 c_th1s_fill1
-  fillN = xform4 c_th1s_filln
-  fillRandom = xform2 c_th1s_fillrandom
-  findBin = xform3 c_th1s_findbin
-  findFixBin = xform3 c_th1s_findfixbin
-  findFirstBinAbove = xform2 c_th1s_findfirstbinabove
-  findLastBinAbove = xform2 c_th1s_findlastbinabove
-  fitPanel = xform0 c_th1s_fitpanel
-  getNdivisions = xform1 c_th1s_getndivisions
-  getAxisColor = xform1 c_th1s_getaxiscolor
-  getLabelColor = xform1 c_th1s_getlabelcolor
-  getLabelFont = xform1 c_th1s_getlabelfont
-  getLabelOffset = xform1 c_th1s_getlabeloffset
-  getLabelSize = xform1 c_th1s_getlabelsize
-  getTitleFont = xform1 c_th1s_gettitlefont
-  getTitleOffset = xform1 c_th1s_gettitleoffset
-  getTitleSize = xform1 c_th1s_gettitlesize
-  getTickLength = xform1 c_th1s_getticklength
-  getBarOffset = xform0 c_th1s_getbaroffset
-  getBarWidth = xform0 c_th1s_getbarwidth
-  getContour = xform1 c_th1s_getcontour
-  getContourLevel = xform1 c_th1s_getcontourlevel
-  getContourLevelPad = xform1 c_th1s_getcontourlevelpad
-  getBin = xform3 c_th1s_getbin
-  getBinCenter = xform1 c_th1s_getbincenter
-  getBinContent1 = xform1 c_th1s_getbincontent1
-  getBinContent2 = xform2 c_th1s_getbincontent2
-  getBinContent3 = xform3 c_th1s_getbincontent3
-  getBinError1 = xform1 c_th1s_getbinerror1
-  getBinError2 = xform2 c_th1s_getbinerror2
-  getBinError3 = xform3 c_th1s_getbinerror3
-  getBinLowEdge = xform1 c_th1s_getbinlowedge
-  getBinWidth = xform1 c_th1s_getbinwidth
-  getCellContent = xform2 c_th1s_getcellcontent
-  getCellError = xform2 c_th1s_getcellerror
-instance ITH1 TH1I where
-  add = xform2 c_th1i_add
-  addBinContent = xform2 c_th1i_addbincontent
-  chi2Test = xform3 c_th1i_chi2test
-  computeIntegral = xform0 c_th1i_computeintegral
-  directoryAutoAdd = xform1 c_th1i_directoryautoadd
-  distancetoPrimitive = xform2 c_th1i_distancetoprimitive
-  divide = xform5 c_th1i_divide
-  drawCopy = xform1 c_th1i_drawcopy
-  drawNormalized = xform2 c_th1i_drawnormalized
-  drawPanel = xform0 c_th1i_drawpanel
-  bufferEmpty = xform1 c_th1i_bufferempty
-  eval = xform2 c_th1i_eval
-  executeEvent = xform3 c_th1i_executeevent
-  fFT = xform2 c_th1i_fft
-  fill1 = xform1 c_th1i_fill1
-  fillN = xform4 c_th1i_filln
-  fillRandom = xform2 c_th1i_fillrandom
-  findBin = xform3 c_th1i_findbin
-  findFixBin = xform3 c_th1i_findfixbin
-  findFirstBinAbove = xform2 c_th1i_findfirstbinabove
-  findLastBinAbove = xform2 c_th1i_findlastbinabove
-  fitPanel = xform0 c_th1i_fitpanel
-  getNdivisions = xform1 c_th1i_getndivisions
-  getAxisColor = xform1 c_th1i_getaxiscolor
-  getLabelColor = xform1 c_th1i_getlabelcolor
-  getLabelFont = xform1 c_th1i_getlabelfont
-  getLabelOffset = xform1 c_th1i_getlabeloffset
-  getLabelSize = xform1 c_th1i_getlabelsize
-  getTitleFont = xform1 c_th1i_gettitlefont
-  getTitleOffset = xform1 c_th1i_gettitleoffset
-  getTitleSize = xform1 c_th1i_gettitlesize
-  getTickLength = xform1 c_th1i_getticklength
-  getBarOffset = xform0 c_th1i_getbaroffset
-  getBarWidth = xform0 c_th1i_getbarwidth
-  getContour = xform1 c_th1i_getcontour
-  getContourLevel = xform1 c_th1i_getcontourlevel
-  getContourLevelPad = xform1 c_th1i_getcontourlevelpad
-  getBin = xform3 c_th1i_getbin
-  getBinCenter = xform1 c_th1i_getbincenter
-  getBinContent1 = xform1 c_th1i_getbincontent1
-  getBinContent2 = xform2 c_th1i_getbincontent2
-  getBinContent3 = xform3 c_th1i_getbincontent3
-  getBinError1 = xform1 c_th1i_getbinerror1
-  getBinError2 = xform2 c_th1i_getbinerror2
-  getBinError3 = xform3 c_th1i_getbinerror3
-  getBinLowEdge = xform1 c_th1i_getbinlowedge
-  getBinWidth = xform1 c_th1i_getbinwidth
-  getCellContent = xform2 c_th1i_getcellcontent
-  getCellError = xform2 c_th1i_getcellerror
-instance ITH1 TH1F where
-  add = xform2 c_th1f_add
-  addBinContent = xform2 c_th1f_addbincontent
-  chi2Test = xform3 c_th1f_chi2test
-  computeIntegral = xform0 c_th1f_computeintegral
-  directoryAutoAdd = xform1 c_th1f_directoryautoadd
-  distancetoPrimitive = xform2 c_th1f_distancetoprimitive
-  divide = xform5 c_th1f_divide
-  drawCopy = xform1 c_th1f_drawcopy
-  drawNormalized = xform2 c_th1f_drawnormalized
-  drawPanel = xform0 c_th1f_drawpanel
-  bufferEmpty = xform1 c_th1f_bufferempty
-  eval = xform2 c_th1f_eval
-  executeEvent = xform3 c_th1f_executeevent
-  fFT = xform2 c_th1f_fft
-  fill1 = xform1 c_th1f_fill1
-  fillN = xform4 c_th1f_filln
-  fillRandom = xform2 c_th1f_fillrandom
-  findBin = xform3 c_th1f_findbin
-  findFixBin = xform3 c_th1f_findfixbin
-  findFirstBinAbove = xform2 c_th1f_findfirstbinabove
-  findLastBinAbove = xform2 c_th1f_findlastbinabove
-  fitPanel = xform0 c_th1f_fitpanel
-  getNdivisions = xform1 c_th1f_getndivisions
-  getAxisColor = xform1 c_th1f_getaxiscolor
-  getLabelColor = xform1 c_th1f_getlabelcolor
-  getLabelFont = xform1 c_th1f_getlabelfont
-  getLabelOffset = xform1 c_th1f_getlabeloffset
-  getLabelSize = xform1 c_th1f_getlabelsize
-  getTitleFont = xform1 c_th1f_gettitlefont
-  getTitleOffset = xform1 c_th1f_gettitleoffset
-  getTitleSize = xform1 c_th1f_gettitlesize
-  getTickLength = xform1 c_th1f_getticklength
-  getBarOffset = xform0 c_th1f_getbaroffset
-  getBarWidth = xform0 c_th1f_getbarwidth
-  getContour = xform1 c_th1f_getcontour
-  getContourLevel = xform1 c_th1f_getcontourlevel
-  getContourLevelPad = xform1 c_th1f_getcontourlevelpad
-  getBin = xform3 c_th1f_getbin
-  getBinCenter = xform1 c_th1f_getbincenter
-  getBinContent1 = xform1 c_th1f_getbincontent1
-  getBinContent2 = xform2 c_th1f_getbincontent2
-  getBinContent3 = xform3 c_th1f_getbincontent3
-  getBinError1 = xform1 c_th1f_getbinerror1
-  getBinError2 = xform2 c_th1f_getbinerror2
-  getBinError3 = xform3 c_th1f_getbinerror3
-  getBinLowEdge = xform1 c_th1f_getbinlowedge
-  getBinWidth = xform1 c_th1f_getbinwidth
-  getCellContent = xform2 c_th1f_getcellcontent
-  getCellError = xform2 c_th1f_getcellerror
-instance ITH1 TH1D where
-  add = xform2 c_th1d_add
-  addBinContent = xform2 c_th1d_addbincontent
-  chi2Test = xform3 c_th1d_chi2test
-  computeIntegral = xform0 c_th1d_computeintegral
-  directoryAutoAdd = xform1 c_th1d_directoryautoadd
-  distancetoPrimitive = xform2 c_th1d_distancetoprimitive
-  divide = xform5 c_th1d_divide
-  drawCopy = xform1 c_th1d_drawcopy
-  drawNormalized = xform2 c_th1d_drawnormalized
-  drawPanel = xform0 c_th1d_drawpanel
-  bufferEmpty = xform1 c_th1d_bufferempty
-  eval = xform2 c_th1d_eval
-  executeEvent = xform3 c_th1d_executeevent
-  fFT = xform2 c_th1d_fft
-  fill1 = xform1 c_th1d_fill1
-  fillN = xform4 c_th1d_filln
-  fillRandom = xform2 c_th1d_fillrandom
-  findBin = xform3 c_th1d_findbin
-  findFixBin = xform3 c_th1d_findfixbin
-  findFirstBinAbove = xform2 c_th1d_findfirstbinabove
-  findLastBinAbove = xform2 c_th1d_findlastbinabove
-  fitPanel = xform0 c_th1d_fitpanel
-  getNdivisions = xform1 c_th1d_getndivisions
-  getAxisColor = xform1 c_th1d_getaxiscolor
-  getLabelColor = xform1 c_th1d_getlabelcolor
-  getLabelFont = xform1 c_th1d_getlabelfont
-  getLabelOffset = xform1 c_th1d_getlabeloffset
-  getLabelSize = xform1 c_th1d_getlabelsize
-  getTitleFont = xform1 c_th1d_gettitlefont
-  getTitleOffset = xform1 c_th1d_gettitleoffset
-  getTitleSize = xform1 c_th1d_gettitlesize
-  getTickLength = xform1 c_th1d_getticklength
-  getBarOffset = xform0 c_th1d_getbaroffset
-  getBarWidth = xform0 c_th1d_getbarwidth
-  getContour = xform1 c_th1d_getcontour
-  getContourLevel = xform1 c_th1d_getcontourlevel
-  getContourLevelPad = xform1 c_th1d_getcontourlevelpad
-  getBin = xform3 c_th1d_getbin
-  getBinCenter = xform1 c_th1d_getbincenter
-  getBinContent1 = xform1 c_th1d_getbincontent1
-  getBinContent2 = xform2 c_th1d_getbincontent2
-  getBinContent3 = xform3 c_th1d_getbincontent3
-  getBinError1 = xform1 c_th1d_getbinerror1
-  getBinError2 = xform2 c_th1d_getbinerror2
-  getBinError3 = xform3 c_th1d_getbinerror3
-  getBinLowEdge = xform1 c_th1d_getbinlowedge
-  getBinWidth = xform1 c_th1d_getbinwidth
-  getCellContent = xform2 c_th1d_getcellcontent
-  getCellError = xform2 c_th1d_getcellerror
-instance ITH1 TH1C where
-  add = xform2 c_th1c_add
-  addBinContent = xform2 c_th1c_addbincontent
-  chi2Test = xform3 c_th1c_chi2test
-  computeIntegral = xform0 c_th1c_computeintegral
-  directoryAutoAdd = xform1 c_th1c_directoryautoadd
-  distancetoPrimitive = xform2 c_th1c_distancetoprimitive
-  divide = xform5 c_th1c_divide
-  drawCopy = xform1 c_th1c_drawcopy
-  drawNormalized = xform2 c_th1c_drawnormalized
-  drawPanel = xform0 c_th1c_drawpanel
-  bufferEmpty = xform1 c_th1c_bufferempty
-  eval = xform2 c_th1c_eval
-  executeEvent = xform3 c_th1c_executeevent
-  fFT = xform2 c_th1c_fft
-  fill1 = xform1 c_th1c_fill1
-  fillN = xform4 c_th1c_filln
-  fillRandom = xform2 c_th1c_fillrandom
-  findBin = xform3 c_th1c_findbin
-  findFixBin = xform3 c_th1c_findfixbin
-  findFirstBinAbove = xform2 c_th1c_findfirstbinabove
-  findLastBinAbove = xform2 c_th1c_findlastbinabove
-  fitPanel = xform0 c_th1c_fitpanel
-  getNdivisions = xform1 c_th1c_getndivisions
-  getAxisColor = xform1 c_th1c_getaxiscolor
-  getLabelColor = xform1 c_th1c_getlabelcolor
-  getLabelFont = xform1 c_th1c_getlabelfont
-  getLabelOffset = xform1 c_th1c_getlabeloffset
-  getLabelSize = xform1 c_th1c_getlabelsize
-  getTitleFont = xform1 c_th1c_gettitlefont
-  getTitleOffset = xform1 c_th1c_gettitleoffset
-  getTitleSize = xform1 c_th1c_gettitlesize
-  getTickLength = xform1 c_th1c_getticklength
-  getBarOffset = xform0 c_th1c_getbaroffset
-  getBarWidth = xform0 c_th1c_getbarwidth
-  getContour = xform1 c_th1c_getcontour
-  getContourLevel = xform1 c_th1c_getcontourlevel
-  getContourLevelPad = xform1 c_th1c_getcontourlevelpad
-  getBin = xform3 c_th1c_getbin
-  getBinCenter = xform1 c_th1c_getbincenter
-  getBinContent1 = xform1 c_th1c_getbincontent1
-  getBinContent2 = xform2 c_th1c_getbincontent2
-  getBinContent3 = xform3 c_th1c_getbincontent3
-  getBinError1 = xform1 c_th1c_getbinerror1
-  getBinError2 = xform2 c_th1c_getbinerror2
-  getBinError3 = xform3 c_th1c_getbinerror3
-  getBinLowEdge = xform1 c_th1c_getbinlowedge
-  getBinWidth = xform1 c_th1c_getbinwidth
-  getCellContent = xform2 c_th1c_getcellcontent
-  getCellError = xform2 c_th1c_getcellerror
-instance ITH1 TH3 where
-  add = xform2 c_th3_add
-  addBinContent = xform2 c_th3_addbincontent
-  chi2Test = xform3 c_th3_chi2test
-  computeIntegral = xform0 c_th3_computeintegral
-  directoryAutoAdd = xform1 c_th3_directoryautoadd
-  distancetoPrimitive = xform2 c_th3_distancetoprimitive
-  divide = xform5 c_th3_divide
-  drawCopy = xform1 c_th3_drawcopy
-  drawNormalized = xform2 c_th3_drawnormalized
-  drawPanel = xform0 c_th3_drawpanel
-  bufferEmpty = xform1 c_th3_bufferempty
-  eval = xform2 c_th3_eval
-  executeEvent = xform3 c_th3_executeevent
-  fFT = xform2 c_th3_fft
-  fill1 = xform1 c_th3_fill1
-  fillN = xform4 c_th3_filln
-  fillRandom = xform2 c_th3_fillrandom
-  findBin = xform3 c_th3_findbin
-  findFixBin = xform3 c_th3_findfixbin
-  findFirstBinAbove = xform2 c_th3_findfirstbinabove
-  findLastBinAbove = xform2 c_th3_findlastbinabove
-  fitPanel = xform0 c_th3_fitpanel
-  getNdivisions = xform1 c_th3_getndivisions
-  getAxisColor = xform1 c_th3_getaxiscolor
-  getLabelColor = xform1 c_th3_getlabelcolor
-  getLabelFont = xform1 c_th3_getlabelfont
-  getLabelOffset = xform1 c_th3_getlabeloffset
-  getLabelSize = xform1 c_th3_getlabelsize
-  getTitleFont = xform1 c_th3_gettitlefont
-  getTitleOffset = xform1 c_th3_gettitleoffset
-  getTitleSize = xform1 c_th3_gettitlesize
-  getTickLength = xform1 c_th3_getticklength
-  getBarOffset = xform0 c_th3_getbaroffset
-  getBarWidth = xform0 c_th3_getbarwidth
-  getContour = xform1 c_th3_getcontour
-  getContourLevel = xform1 c_th3_getcontourlevel
-  getContourLevelPad = xform1 c_th3_getcontourlevelpad
-  getBin = xform3 c_th3_getbin
-  getBinCenter = xform1 c_th3_getbincenter
-  getBinContent1 = xform1 c_th3_getbincontent1
-  getBinContent2 = xform2 c_th3_getbincontent2
-  getBinContent3 = xform3 c_th3_getbincontent3
-  getBinError1 = xform1 c_th3_getbinerror1
-  getBinError2 = xform2 c_th3_getbinerror2
-  getBinError3 = xform3 c_th3_getbinerror3
-  getBinLowEdge = xform1 c_th3_getbinlowedge
-  getBinWidth = xform1 c_th3_getbinwidth
-  getCellContent = xform2 c_th3_getcellcontent
-  getCellError = xform2 c_th3_getcellerror
-instance ITH1 TH2 where
-  add = xform2 c_th2_add
-  addBinContent = xform2 c_th2_addbincontent
-  chi2Test = xform3 c_th2_chi2test
-  computeIntegral = xform0 c_th2_computeintegral
-  directoryAutoAdd = xform1 c_th2_directoryautoadd
-  distancetoPrimitive = xform2 c_th2_distancetoprimitive
-  divide = xform5 c_th2_divide
-  drawCopy = xform1 c_th2_drawcopy
-  drawNormalized = xform2 c_th2_drawnormalized
-  drawPanel = xform0 c_th2_drawpanel
-  bufferEmpty = xform1 c_th2_bufferempty
-  eval = xform2 c_th2_eval
-  executeEvent = xform3 c_th2_executeevent
-  fFT = xform2 c_th2_fft
-  fill1 = xform1 c_th2_fill1
-  fillN = xform4 c_th2_filln
-  fillRandom = xform2 c_th2_fillrandom
-  findBin = xform3 c_th2_findbin
-  findFixBin = xform3 c_th2_findfixbin
-  findFirstBinAbove = xform2 c_th2_findfirstbinabove
-  findLastBinAbove = xform2 c_th2_findlastbinabove
-  fitPanel = xform0 c_th2_fitpanel
-  getNdivisions = xform1 c_th2_getndivisions
-  getAxisColor = xform1 c_th2_getaxiscolor
-  getLabelColor = xform1 c_th2_getlabelcolor
-  getLabelFont = xform1 c_th2_getlabelfont
-  getLabelOffset = xform1 c_th2_getlabeloffset
-  getLabelSize = xform1 c_th2_getlabelsize
-  getTitleFont = xform1 c_th2_gettitlefont
-  getTitleOffset = xform1 c_th2_gettitleoffset
-  getTitleSize = xform1 c_th2_gettitlesize
-  getTickLength = xform1 c_th2_getticklength
-  getBarOffset = xform0 c_th2_getbaroffset
-  getBarWidth = xform0 c_th2_getbarwidth
-  getContour = xform1 c_th2_getcontour
-  getContourLevel = xform1 c_th2_getcontourlevel
-  getContourLevelPad = xform1 c_th2_getcontourlevelpad
-  getBin = xform3 c_th2_getbin
-  getBinCenter = xform1 c_th2_getbincenter
-  getBinContent1 = xform1 c_th2_getbincontent1
-  getBinContent2 = xform2 c_th2_getbincontent2
-  getBinContent3 = xform3 c_th2_getbincontent3
-  getBinError1 = xform1 c_th2_getbinerror1
-  getBinError2 = xform2 c_th2_getbinerror2
-  getBinError3 = xform3 c_th2_getbinerror3
-  getBinLowEdge = xform1 c_th2_getbinlowedge
-  getBinWidth = xform1 c_th2_getbinwidth
-  getCellContent = xform2 c_th2_getcellcontent
-  getCellError = xform2 c_th2_getcellerror
-
-instance ITH2 TH2S where
-  fill2 = xform2 c_th2s_fill2
-instance ITH2 TH2Poly where
-  fill2 = xform2 c_th2poly_fill2
-instance ITH2 TH2I where
-  fill2 = xform2 c_th2i_fill2
-instance ITH2 TH2F where
-  fill2 = xform2 c_th2f_fill2
-instance ITH2 TH2D where
-  fill2 = xform2 c_th2d_fill2
-instance ITH2 TH2C where
-  fill2 = xform2 c_th2c_fill2
-
-instance ITH3 TH3S where
-instance ITH3 TH3I where
-instance ITH3 TH3F where
-instance ITH3 TH3D where
-instance ITH3 TH3C where
-
-instance ITLine TGaxis where
-instance ITLine TArrow where
-
-instance ITNamed TH3S where
-  setTitle = xform1 c_th3s_settitle
-instance ITNamed TH3I where
-  setTitle = xform1 c_th3i_settitle
-instance ITNamed TH3F where
-  setTitle = xform1 c_th3f_settitle
-instance ITNamed TH3D where
-  setTitle = xform1 c_th3d_settitle
-instance ITNamed TH3C where
-  setTitle = xform1 c_th3c_settitle
-instance ITNamed TH2S where
-  setTitle = xform1 c_th2s_settitle
-instance ITNamed TH2Poly where
-  setTitle = xform1 c_th2poly_settitle
-instance ITNamed TH2I where
-  setTitle = xform1 c_th2i_settitle
-instance ITNamed TH2F where
-  setTitle = xform1 c_th2f_settitle
-instance ITNamed TH2D where
-  setTitle = xform1 c_th2d_settitle
-instance ITNamed TH2C where
-  setTitle = xform1 c_th2c_settitle
-instance ITNamed TH1S where
-  setTitle = xform1 c_th1s_settitle
-instance ITNamed TH1I where
-  setTitle = xform1 c_th1i_settitle
-instance ITNamed TH1F where
-  setTitle = xform1 c_th1f_settitle
-instance ITNamed TH1D where
-  setTitle = xform1 c_th1d_settitle
-instance ITNamed TH1C where
-  setTitle = xform1 c_th1c_settitle
-instance ITNamed TH3 where
-  setTitle = xform1 c_th3_settitle
-instance ITNamed TH2 where
-  setTitle = xform1 c_th2_settitle
-instance ITNamed TH1 where
-  setTitle = xform1 c_th1_settitle
-instance ITNamed TBranch where
-  setTitle = xform1 c_tbranch_settitle
-instance ITNamed TFile where
-  setTitle = xform1 c_tfile_settitle
-instance ITNamed TDirectoryFile where
-  setTitle = xform1 c_tdirectoryfile_settitle
-instance ITNamed TDirectory where
-  setTitle = xform1 c_tdirectory_settitle
-instance ITNamed TText where
-  setTitle = xform1 c_ttext_settitle
-instance ITNamed TLatex where
-  setTitle = xform1 c_tlatex_settitle
-instance ITNamed TAxis where
-  setTitle = xform1 c_taxis_settitle
-instance ITNamed TEfficiency where
-  setTitle = xform1 c_tefficiency_settitle
-instance ITNamed TTreeSQL where
-  setTitle = xform1 c_ttreesql_settitle
-instance ITNamed TNtupleD where
-  setTitle = xform1 c_tntupled_settitle
-instance ITNamed TNtuple where
-  setTitle = xform1 c_tntuple_settitle
-instance ITNamed TChain where
-  setTitle = xform1 c_tchain_settitle
-instance ITNamed TTree where
-  setTitle = xform1 c_ttree_settitle
-instance ITNamed TXTRU where
-  setTitle = xform1 c_txtru_settitle
-instance ITNamed TSPHE where
-  setTitle = xform1 c_tsphe_settitle
-instance ITNamed TPCON where
-  setTitle = xform1 c_tpcon_settitle
-instance ITNamed TTUBE where
-  setTitle = xform1 c_ttube_settitle
-instance ITNamed TBRIK where
-  setTitle = xform1 c_tbrik_settitle
-instance ITNamed TShape where
-  setTitle = xform1 c_tshape_settitle
-instance ITNamed TGraphQQ where
-  setTitle = xform1 c_tgraphqq_settitle
-instance ITNamed TGraphPolar where
-  setTitle = xform1 c_tgraphpolar_settitle
-instance ITNamed TGraphErrors where
-  setTitle = xform1 c_tgrapherrors_settitle
-instance ITNamed TGraphBentErrors where
-  setTitle = xform1 c_tgraphbenterrors_settitle
-instance ITNamed TCutG where
-  setTitle = xform1 c_tcutg_settitle
-instance ITNamed TGraphAsymmErrors where
-  setTitle = xform1 c_tgraphasymmerrors_settitle
-instance ITNamed TGraph where
-  setTitle = xform1 c_tgraph_settitle
-instance ITNamed TF1 where
-  setTitle = xform1 c_tf1_settitle
-instance ITNamed THStack where
-  setTitle = xform1 c_thstack_settitle
-instance ITNamed TAttParticle where
-  setTitle = xform1 c_tattparticle_settitle
-instance ITNamed TFormula where
-  setTitle = xform1 c_tformula_settitle
-
-instance ITObject TRint where
-  getName = xform0 c_trint_getname
-  draw = xform1 c_trint_draw
-  findObject = xform1 c_trint_findobject
-  saveAs = xform2 c_trint_saveas
-  write = xform3 c_trint_write
-instance ITObject TApplication where
-  getName = xform0 c_tapplication_getname
-  draw = xform1 c_tapplication_draw
-  findObject = xform1 c_tapplication_findobject
-  saveAs = xform2 c_tapplication_saveas
-  write = xform3 c_tapplication_write
-instance ITObject TSlider where
-  getName = xform0 c_tslider_getname
-  draw = xform1 c_tslider_draw
-  findObject = xform1 c_tslider_findobject
-  saveAs = xform2 c_tslider_saveas
-  write = xform3 c_tslider_write
-instance ITObject TEvePad where
-  getName = xform0 c_tevepad_getname
-  draw = xform1 c_tevepad_draw
-  findObject = xform1 c_tevepad_findobject
-  saveAs = xform2 c_tevepad_saveas
-  write = xform3 c_tevepad_write
-instance ITObject TInspectCanvas where
-  getName = xform0 c_tinspectcanvas_getname
-  draw = xform1 c_tinspectcanvas_draw
-  findObject = xform1 c_tinspectcanvas_findobject
-  saveAs = xform2 c_tinspectcanvas_saveas
-  write = xform3 c_tinspectcanvas_write
-instance ITObject TDialogCanvas where
-  getName = xform0 c_tdialogcanvas_getname
-  draw = xform1 c_tdialogcanvas_draw
-  findObject = xform1 c_tdialogcanvas_findobject
-  saveAs = xform2 c_tdialogcanvas_saveas
-  write = xform3 c_tdialogcanvas_write
-instance ITObject TCanvas where
-  getName = xform0 c_tcanvas_getname
-  draw = xform1 c_tcanvas_draw
-  findObject = xform1 c_tcanvas_findobject
-  saveAs = xform2 c_tcanvas_saveas
-  write = xform3 c_tcanvas_write
-instance ITObject TGroupButton where
-  getName = xform0 c_tgroupbutton_getname
-  draw = xform1 c_tgroupbutton_draw
-  findObject = xform1 c_tgroupbutton_findobject
-  saveAs = xform2 c_tgroupbutton_saveas
-  write = xform3 c_tgroupbutton_write
-instance ITObject TButton where
-  getName = xform0 c_tbutton_getname
-  draw = xform1 c_tbutton_draw
-  findObject = xform1 c_tbutton_findobject
-  saveAs = xform2 c_tbutton_saveas
-  write = xform3 c_tbutton_write
-instance ITObject TPad where
-  getName = xform0 c_tpad_getname
-  draw = xform1 c_tpad_draw
-  findObject = xform1 c_tpad_findobject
-  saveAs = xform2 c_tpad_saveas
-  write = xform3 c_tpad_write
-instance ITObject TVirtualPad where
-  getName = xform0 c_tvirtualpad_getname
-  draw = xform1 c_tvirtualpad_draw
-  findObject = xform1 c_tvirtualpad_findobject
-  saveAs = xform2 c_tvirtualpad_saveas
-  write = xform3 c_tvirtualpad_write
-instance ITObject TH3S where
-  getName = xform0 c_th3s_getname
-  draw = xform1 c_th3s_draw
-  findObject = xform1 c_th3s_findobject
-  saveAs = xform2 c_th3s_saveas
-  write = xform3 c_th3s_write
-instance ITObject TH3I where
-  getName = xform0 c_th3i_getname
-  draw = xform1 c_th3i_draw
-  findObject = xform1 c_th3i_findobject
-  saveAs = xform2 c_th3i_saveas
-  write = xform3 c_th3i_write
-instance ITObject TH3F where
-  getName = xform0 c_th3f_getname
-  draw = xform1 c_th3f_draw
-  findObject = xform1 c_th3f_findobject
-  saveAs = xform2 c_th3f_saveas
-  write = xform3 c_th3f_write
-instance ITObject TH3D where
-  getName = xform0 c_th3d_getname
-  draw = xform1 c_th3d_draw
-  findObject = xform1 c_th3d_findobject
-  saveAs = xform2 c_th3d_saveas
-  write = xform3 c_th3d_write
-instance ITObject TH3C where
-  getName = xform0 c_th3c_getname
-  draw = xform1 c_th3c_draw
-  findObject = xform1 c_th3c_findobject
-  saveAs = xform2 c_th3c_saveas
-  write = xform3 c_th3c_write
-instance ITObject TH2S where
-  getName = xform0 c_th2s_getname
-  draw = xform1 c_th2s_draw
-  findObject = xform1 c_th2s_findobject
-  saveAs = xform2 c_th2s_saveas
-  write = xform3 c_th2s_write
-instance ITObject TH2Poly where
-  getName = xform0 c_th2poly_getname
-  draw = xform1 c_th2poly_draw
-  findObject = xform1 c_th2poly_findobject
-  saveAs = xform2 c_th2poly_saveas
-  write = xform3 c_th2poly_write
-instance ITObject TH2I where
-  getName = xform0 c_th2i_getname
-  draw = xform1 c_th2i_draw
-  findObject = xform1 c_th2i_findobject
-  saveAs = xform2 c_th2i_saveas
-  write = xform3 c_th2i_write
-instance ITObject TH2F where
-  getName = xform0 c_th2f_getname
-  draw = xform1 c_th2f_draw
-  findObject = xform1 c_th2f_findobject
-  saveAs = xform2 c_th2f_saveas
-  write = xform3 c_th2f_write
-instance ITObject TH2D where
-  getName = xform0 c_th2d_getname
-  draw = xform1 c_th2d_draw
-  findObject = xform1 c_th2d_findobject
-  saveAs = xform2 c_th2d_saveas
-  write = xform3 c_th2d_write
-instance ITObject TH2C where
-  getName = xform0 c_th2c_getname
-  draw = xform1 c_th2c_draw
-  findObject = xform1 c_th2c_findobject
-  saveAs = xform2 c_th2c_saveas
-  write = xform3 c_th2c_write
-instance ITObject TH1S where
-  getName = xform0 c_th1s_getname
-  draw = xform1 c_th1s_draw
-  findObject = xform1 c_th1s_findobject
-  saveAs = xform2 c_th1s_saveas
-  write = xform3 c_th1s_write
-instance ITObject TH1I where
-  getName = xform0 c_th1i_getname
-  draw = xform1 c_th1i_draw
-  findObject = xform1 c_th1i_findobject
-  saveAs = xform2 c_th1i_saveas
-  write = xform3 c_th1i_write
-instance ITObject TH1F where
-  getName = xform0 c_th1f_getname
-  draw = xform1 c_th1f_draw
-  findObject = xform1 c_th1f_findobject
-  saveAs = xform2 c_th1f_saveas
-  write = xform3 c_th1f_write
-instance ITObject TH1D where
-  getName = xform0 c_th1d_getname
-  draw = xform1 c_th1d_draw
-  findObject = xform1 c_th1d_findobject
-  saveAs = xform2 c_th1d_saveas
-  write = xform3 c_th1d_write
-instance ITObject TH1C where
-  getName = xform0 c_th1c_getname
-  draw = xform1 c_th1c_draw
-  findObject = xform1 c_th1c_findobject
-  saveAs = xform2 c_th1c_saveas
-  write = xform3 c_th1c_write
-instance ITObject TH3 where
-  getName = xform0 c_th3_getname
-  draw = xform1 c_th3_draw
-  findObject = xform1 c_th3_findobject
-  saveAs = xform2 c_th3_saveas
-  write = xform3 c_th3_write
-instance ITObject TH2 where
-  getName = xform0 c_th2_getname
-  draw = xform1 c_th2_draw
-  findObject = xform1 c_th2_findobject
-  saveAs = xform2 c_th2_saveas
-  write = xform3 c_th2_write
-instance ITObject TH1 where
-  getName = xform0 c_th1_getname
-  draw = xform1 c_th1_draw
-  findObject = xform1 c_th1_findobject
-  saveAs = xform2 c_th1_saveas
-  write = xform3 c_th1_write
-instance ITObject TTreePlayer where
-  getName = xform0 c_ttreeplayer_getname
-  draw = xform1 c_ttreeplayer_draw
-  findObject = xform1 c_ttreeplayer_findobject
-  saveAs = xform2 c_ttreeplayer_saveas
-  write = xform3 c_ttreeplayer_write
-instance ITObject TVirtualTreePlayer where
-  getName = xform0 c_tvirtualtreeplayer_getname
-  draw = xform1 c_tvirtualtreeplayer_draw
-  findObject = xform1 c_tvirtualtreeplayer_findobject
-  saveAs = xform2 c_tvirtualtreeplayer_saveas
-  write = xform3 c_tvirtualtreeplayer_write
-instance ITObject TBranch where
-  getName = xform0 c_tbranch_getname
-  draw = xform1 c_tbranch_draw
-  findObject = xform1 c_tbranch_findobject
-  saveAs = xform2 c_tbranch_saveas
-  write = xform3 c_tbranch_write
-instance ITObject TFile where
-  getName = xform0 c_tfile_getname
-  draw = xform1 c_tfile_draw
-  findObject = xform1 c_tfile_findobject
-  saveAs = xform2 c_tfile_saveas
-  write = xform3 c_tfile_write
-instance ITObject TDirectoryFile where
-  getName = xform0 c_tdirectoryfile_getname
-  draw = xform1 c_tdirectoryfile_draw
-  findObject = xform1 c_tdirectoryfile_findobject
-  saveAs = xform2 c_tdirectoryfile_saveas
-  write = xform3 c_tdirectoryfile_write
-instance ITObject TDirectory where
-  getName = xform0 c_tdirectory_getname
-  draw = xform1 c_tdirectory_draw
-  findObject = xform1 c_tdirectory_findobject
-  saveAs = xform2 c_tdirectory_saveas
-  write = xform3 c_tdirectory_write
-instance ITObject TText where
-  getName = xform0 c_ttext_getname
-  draw = xform1 c_ttext_draw
-  findObject = xform1 c_ttext_findobject
-  saveAs = xform2 c_ttext_saveas
-  write = xform3 c_ttext_write
-instance ITObject TLatex where
-  getName = xform0 c_tlatex_getname
-  draw = xform1 c_tlatex_draw
-  findObject = xform1 c_tlatex_findobject
-  saveAs = xform2 c_tlatex_saveas
-  write = xform3 c_tlatex_write
-instance ITObject TAxis where
-  getName = xform0 c_taxis_getname
-  draw = xform1 c_taxis_draw
-  findObject = xform1 c_taxis_findobject
-  saveAs = xform2 c_taxis_saveas
-  write = xform3 c_taxis_write
-instance ITObject TEfficiency where
-  getName = xform0 c_tefficiency_getname
-  draw = xform1 c_tefficiency_draw
-  findObject = xform1 c_tefficiency_findobject
-  saveAs = xform2 c_tefficiency_saveas
-  write = xform3 c_tefficiency_write
-instance ITObject TCurlyArc where
-  getName = xform0 c_tcurlyarc_getname
-  draw = xform1 c_tcurlyarc_draw
-  findObject = xform1 c_tcurlyarc_findobject
-  saveAs = xform2 c_tcurlyarc_saveas
-  write = xform3 c_tcurlyarc_write
-instance ITObject TCurlyLine where
-  getName = xform0 c_tcurlyline_getname
-  draw = xform1 c_tcurlyline_draw
-  findObject = xform1 c_tcurlyline_findobject
-  saveAs = xform2 c_tcurlyline_saveas
-  write = xform3 c_tcurlyline_write
-instance ITObject TPolyLine where
-  getName = xform0 c_tpolyline_getname
-  draw = xform1 c_tpolyline_draw
-  findObject = xform1 c_tpolyline_findobject
-  saveAs = xform2 c_tpolyline_saveas
-  write = xform3 c_tpolyline_write
-instance ITObject TTreeSQL where
-  getName = xform0 c_ttreesql_getname
-  draw = xform1 c_ttreesql_draw
-  findObject = xform1 c_ttreesql_findobject
-  saveAs = xform2 c_ttreesql_saveas
-  write = xform3 c_ttreesql_write
-instance ITObject TNtupleD where
-  getName = xform0 c_tntupled_getname
-  draw = xform1 c_tntupled_draw
-  findObject = xform1 c_tntupled_findobject
-  saveAs = xform2 c_tntupled_saveas
-  write = xform3 c_tntupled_write
-instance ITObject TNtuple where
-  getName = xform0 c_tntuple_getname
-  draw = xform1 c_tntuple_draw
-  findObject = xform1 c_tntuple_findobject
-  saveAs = xform2 c_tntuple_saveas
-  write = xform3 c_tntuple_write
-instance ITObject TChain where
-  getName = xform0 c_tchain_getname
-  draw = xform1 c_tchain_draw
-  findObject = xform1 c_tchain_findobject
-  saveAs = xform2 c_tchain_saveas
-  write = xform3 c_tchain_write
-instance ITObject TTree where
-  getName = xform0 c_ttree_getname
-  draw = xform1 c_ttree_draw
-  findObject = xform1 c_ttree_findobject
-  saveAs = xform2 c_ttree_saveas
-  write = xform3 c_ttree_write
-instance ITObject TSliderBox where
-  getName = xform0 c_tsliderbox_getname
-  draw = xform1 c_tsliderbox_draw
-  findObject = xform1 c_tsliderbox_findobject
-  saveAs = xform2 c_tsliderbox_saveas
-  write = xform3 c_tsliderbox_write
-instance ITObject TFrame where
-  getName = xform0 c_tframe_getname
-  draw = xform1 c_tframe_draw
-  findObject = xform1 c_tframe_findobject
-  saveAs = xform2 c_tframe_saveas
-  write = xform3 c_tframe_write
-instance ITObject TWbox where
-  getName = xform0 c_twbox_getname
-  draw = xform1 c_twbox_draw
-  findObject = xform1 c_twbox_findobject
-  saveAs = xform2 c_twbox_saveas
-  write = xform3 c_twbox_write
-instance ITObject TPaveClass where
-  getName = xform0 c_tpaveclass_getname
-  draw = xform1 c_tpaveclass_draw
-  findObject = xform1 c_tpaveclass_findobject
-  saveAs = xform2 c_tpaveclass_saveas
-  write = xform3 c_tpaveclass_write
-instance ITObject TPaveLabel where
-  getName = xform0 c_tpavelabel_getname
-  draw = xform1 c_tpavelabel_draw
-  findObject = xform1 c_tpavelabel_findobject
-  saveAs = xform2 c_tpavelabel_saveas
-  write = xform3 c_tpavelabel_write
-instance ITObject TLegend where
-  getName = xform0 c_tlegend_getname
-  draw = xform1 c_tlegend_draw
-  findObject = xform1 c_tlegend_findobject
-  saveAs = xform2 c_tlegend_saveas
-  write = xform3 c_tlegend_write
-instance ITObject TPavesText where
-  getName = xform0 c_tpavestext_getname
-  draw = xform1 c_tpavestext_draw
-  findObject = xform1 c_tpavestext_findobject
-  saveAs = xform2 c_tpavestext_saveas
-  write = xform3 c_tpavestext_write
-instance ITObject TPaveStats where
-  getName = xform0 c_tpavestats_getname
-  draw = xform1 c_tpavestats_draw
-  findObject = xform1 c_tpavestats_findobject
-  saveAs = xform2 c_tpavestats_saveas
-  write = xform3 c_tpavestats_write
-instance ITObject TDiamond where
-  getName = xform0 c_tdiamond_getname
-  draw = xform1 c_tdiamond_draw
-  findObject = xform1 c_tdiamond_findobject
-  saveAs = xform2 c_tdiamond_saveas
-  write = xform3 c_tdiamond_write
-instance ITObject TPaveText where
-  getName = xform0 c_tpavetext_getname
-  draw = xform1 c_tpavetext_draw
-  findObject = xform1 c_tpavetext_findobject
-  saveAs = xform2 c_tpavetext_saveas
-  write = xform3 c_tpavetext_write
-instance ITObject TPave where
-  getName = xform0 c_tpave_getname
-  draw = xform1 c_tpave_draw
-  findObject = xform1 c_tpave_findobject
-  saveAs = xform2 c_tpave_saveas
-  write = xform3 c_tpave_write
-instance ITObject TBox where
-  getName = xform0 c_tbox_getname
-  draw = xform1 c_tbox_draw
-  findObject = xform1 c_tbox_findobject
-  saveAs = xform2 c_tbox_saveas
-  write = xform3 c_tbox_write
-instance ITObject TXTRU where
-  getName = xform0 c_txtru_getname
-  draw = xform1 c_txtru_draw
-  findObject = xform1 c_txtru_findobject
-  saveAs = xform2 c_txtru_saveas
-  write = xform3 c_txtru_write
-instance ITObject TSPHE where
-  getName = xform0 c_tsphe_getname
-  draw = xform1 c_tsphe_draw
-  findObject = xform1 c_tsphe_findobject
-  saveAs = xform2 c_tsphe_saveas
-  write = xform3 c_tsphe_write
-instance ITObject TPCON where
-  getName = xform0 c_tpcon_getname
-  draw = xform1 c_tpcon_draw
-  findObject = xform1 c_tpcon_findobject
-  saveAs = xform2 c_tpcon_saveas
-  write = xform3 c_tpcon_write
-instance ITObject TTUBE where
-  getName = xform0 c_ttube_getname
-  draw = xform1 c_ttube_draw
-  findObject = xform1 c_ttube_findobject
-  saveAs = xform2 c_ttube_saveas
-  write = xform3 c_ttube_write
-instance ITObject TBRIK where
-  getName = xform0 c_tbrik_getname
-  draw = xform1 c_tbrik_draw
-  findObject = xform1 c_tbrik_findobject
-  saveAs = xform2 c_tbrik_saveas
-  write = xform3 c_tbrik_write
-instance ITObject TShape where
-  getName = xform0 c_tshape_getname
-  draw = xform1 c_tshape_draw
-  findObject = xform1 c_tshape_findobject
-  saveAs = xform2 c_tshape_saveas
-  write = xform3 c_tshape_write
-instance ITObject TGaxis where
-  getName = xform0 c_tgaxis_getname
-  draw = xform1 c_tgaxis_draw
-  findObject = xform1 c_tgaxis_findobject
-  saveAs = xform2 c_tgaxis_saveas
-  write = xform3 c_tgaxis_write
-instance ITObject TArrow where
-  getName = xform0 c_tarrow_getname
-  draw = xform1 c_tarrow_draw
-  findObject = xform1 c_tarrow_findobject
-  saveAs = xform2 c_tarrow_saveas
-  write = xform3 c_tarrow_write
-instance ITObject TLine where
-  getName = xform0 c_tline_getname
-  draw = xform1 c_tline_draw
-  findObject = xform1 c_tline_findobject
-  saveAs = xform2 c_tline_saveas
-  write = xform3 c_tline_write
-instance ITObject TCrown where
-  getName = xform0 c_tcrown_getname
-  draw = xform1 c_tcrown_draw
-  findObject = xform1 c_tcrown_findobject
-  saveAs = xform2 c_tcrown_saveas
-  write = xform3 c_tcrown_write
-instance ITObject TArc where
-  getName = xform0 c_tarc_getname
-  draw = xform1 c_tarc_draw
-  findObject = xform1 c_tarc_findobject
-  saveAs = xform2 c_tarc_saveas
-  write = xform3 c_tarc_write
-instance ITObject TEllipse where
-  getName = xform0 c_tellipse_getname
-  draw = xform1 c_tellipse_draw
-  findObject = xform1 c_tellipse_findobject
-  saveAs = xform2 c_tellipse_saveas
-  write = xform3 c_tellipse_write
-instance ITObject TGraphQQ where
-  getName = xform0 c_tgraphqq_getname
-  draw = xform1 c_tgraphqq_draw
-  findObject = xform1 c_tgraphqq_findobject
-  saveAs = xform2 c_tgraphqq_saveas
-  write = xform3 c_tgraphqq_write
-instance ITObject TGraphPolar where
-  getName = xform0 c_tgraphpolar_getname
-  draw = xform1 c_tgraphpolar_draw
-  findObject = xform1 c_tgraphpolar_findobject
-  saveAs = xform2 c_tgraphpolar_saveas
-  write = xform3 c_tgraphpolar_write
-instance ITObject TGraphErrors where
-  getName = xform0 c_tgrapherrors_getname
-  draw = xform1 c_tgrapherrors_draw
-  findObject = xform1 c_tgrapherrors_findobject
-  saveAs = xform2 c_tgrapherrors_saveas
-  write = xform3 c_tgrapherrors_write
-instance ITObject TGraphBentErrors where
-  getName = xform0 c_tgraphbenterrors_getname
-  draw = xform1 c_tgraphbenterrors_draw
-  findObject = xform1 c_tgraphbenterrors_findobject
-  saveAs = xform2 c_tgraphbenterrors_saveas
-  write = xform3 c_tgraphbenterrors_write
-instance ITObject TCutG where
-  getName = xform0 c_tcutg_getname
-  draw = xform1 c_tcutg_draw
-  findObject = xform1 c_tcutg_findobject
-  saveAs = xform2 c_tcutg_saveas
-  write = xform3 c_tcutg_write
-instance ITObject TGraphAsymmErrors where
-  getName = xform0 c_tgraphasymmerrors_getname
-  draw = xform1 c_tgraphasymmerrors_draw
-  findObject = xform1 c_tgraphasymmerrors_findobject
-  saveAs = xform2 c_tgraphasymmerrors_saveas
-  write = xform3 c_tgraphasymmerrors_write
-instance ITObject TGraph where
-  getName = xform0 c_tgraph_getname
-  draw = xform1 c_tgraph_draw
-  findObject = xform1 c_tgraph_findobject
-  saveAs = xform2 c_tgraph_saveas
-  write = xform3 c_tgraph_write
-instance ITObject TF1 where
-  getName = xform0 c_tf1_getname
-  draw = xform1 c_tf1_draw
-  findObject = xform1 c_tf1_findobject
-  saveAs = xform2 c_tf1_saveas
-  write = xform3 c_tf1_write
-instance ITObject THStack where
-  getName = xform0 c_thstack_getname
-  draw = xform1 c_thstack_draw
-  findObject = xform1 c_thstack_findobject
-  saveAs = xform2 c_thstack_saveas
-  write = xform3 c_thstack_write
-instance ITObject TAttParticle where
-  getName = xform0 c_tattparticle_getname
-  draw = xform1 c_tattparticle_draw
-  findObject = xform1 c_tattparticle_findobject
-  saveAs = xform2 c_tattparticle_saveas
-  write = xform3 c_tattparticle_write
-instance ITObject TFormula where
-  getName = xform0 c_tformula_getname
-  draw = xform1 c_tformula_draw
-  findObject = xform1 c_tformula_findobject
-  saveAs = xform2 c_tformula_saveas
-  write = xform3 c_tformula_write
-instance ITObject TNamed where
-  getName = xform0 c_tnamed_getname
-  draw = xform1 c_tnamed_draw
-  findObject = xform1 c_tnamed_findobject
-  saveAs = xform2 c_tnamed_saveas
-  write = xform3 c_tnamed_write
-
-instance ITPad TSlider where
-instance ITPad TEvePad where
-instance ITPad TInspectCanvas where
-instance ITPad TDialogCanvas where
-instance ITPad TCanvas where
-instance ITPad TGroupButton where
-instance ITPad TButton where
-
-instance ITPave TPaveClass where
-instance ITPave TPaveLabel where
-instance ITPave TLegend where
-instance ITPave TPavesText where
-instance ITPave TPaveStats where
-instance ITPave TDiamond where
-instance ITPave TPaveText where
-
-instance ITPaveLabel TPaveClass where
-
-instance ITPaveText TPavesText where
-instance ITPaveText TPaveStats where
-instance ITPaveText TDiamond where
-
-instance ITPolyLine TCurlyArc where
-instance ITPolyLine TCurlyLine where
-
-instance ITQObject TRint where
-instance ITQObject TApplication where
-instance ITQObject TSlider where
-instance ITQObject TEvePad where
-instance ITQObject TInspectCanvas where
-instance ITQObject TDialogCanvas where
-instance ITQObject TCanvas where
-instance ITQObject TGroupButton where
-instance ITQObject TButton where
-instance ITQObject TPad where
-instance ITQObject TVirtualPad where
-
-instance ITShape TXTRU where
-instance ITShape TSPHE where
-instance ITShape TPCON where
-instance ITShape TTUBE where
-instance ITShape TBRIK where
-
-instance ITText TLatex where
-
-instance ITTree TTreeSQL where
-instance ITTree TNtupleD where
-instance ITTree TNtuple where
-instance ITTree TChain where
-
-instance ITVirtualPad TSlider where
-  getFrame = xform0 c_tslider_getframe
-  range = xform4 c_tslider_range
-instance ITVirtualPad TEvePad where
-  getFrame = xform0 c_tevepad_getframe
-  range = xform4 c_tevepad_range
-instance ITVirtualPad TInspectCanvas where
-  getFrame = xform0 c_tinspectcanvas_getframe
-  range = xform4 c_tinspectcanvas_range
-instance ITVirtualPad TDialogCanvas where
-  getFrame = xform0 c_tdialogcanvas_getframe
-  range = xform4 c_tdialogcanvas_range
-instance ITVirtualPad TCanvas where
-  getFrame = xform0 c_tcanvas_getframe
-  range = xform4 c_tcanvas_range
-instance ITVirtualPad TGroupButton where
-  getFrame = xform0 c_tgroupbutton_getframe
-  range = xform4 c_tgroupbutton_range
-instance ITVirtualPad TButton where
-  getFrame = xform0 c_tbutton_getframe
-  range = xform4 c_tbutton_range
-instance ITVirtualPad TPad where
-  getFrame = xform0 c_tpad_getframe
-  range = xform4 c_tpad_range
-
-instance ITVirtualTreePlayer TTreePlayer where
-
-instance ITWbox TSliderBox where
-  setBorderMode = xform1 c_tsliderbox_setbordermode
-instance ITWbox TFrame where
-  setBorderMode = xform1 c_tframe_setbordermode
-
-
-
-newTObject :: IO TObject
-newTObject = xformnull c_tobject_newtobject
-
-newTNamed :: String -> String -> IO TNamed
-newTNamed = xform1 c_tnamed_newtnamed
-
-newTFormula :: String -> String -> IO TFormula
-newTFormula = xform1 c_tformula_newtformula
-
-
-
-newTAttAxis :: IO TAttAxis
-newTAttAxis = xformnull c_tattaxis_newtattaxis
-
-
-
-newTAttCanvas :: IO TAttCanvas
-newTAttCanvas = xformnull c_tattcanvas_newtattcanvas
-
-newTAttFill :: Int -> Int -> IO TAttFill
-newTAttFill = xform1 c_tattfill_newtattfill
-
-
-
-newTAttLine :: Int -> Int -> Int -> IO TAttLine
-newTAttLine = xform2 c_tattline_newtattline
-
-newTAttMarker :: Int -> Int -> Int -> IO TAttMarker
-newTAttMarker = xform2 c_tattmarker_newtattmarker
-
-newTAttPad :: IO TAttPad
-newTAttPad = xformnull c_tattpad_newtattpad
-
-
-
-newTAttText :: Int -> Double -> Int -> Int -> Double -> IO TAttText
-newTAttText = xform4 c_tatttext_newtatttext
-
-newTHStack :: String -> String -> IO THStack
-newTHStack = xform1 c_thstack_newthstack
-
-newTF1 :: String -> String -> Double -> Double -> IO TF1
-newTF1 = xform3 c_tf1_newtf1
-
-newTGraph :: Int -> [Double] -> [Double] -> IO TGraph
-newTGraph = xform2 c_tgraph_newtgraph
-
-newTGraphAsymmErrors :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphAsymmErrors
-newTGraphAsymmErrors = xform6 c_tgraphasymmerrors_newtgraphasymmerrors
-
-newTCutG :: String -> Int -> [Double] -> [Double] -> IO TCutG
-newTCutG = xform3 c_tcutg_newtcutg
-
-newTGraphBentErrors :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphBentErrors
-newTGraphBentErrors = xform10 c_tgraphbenterrors_newtgraphbenterrors
-
-newTGraphErrors :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphErrors
-newTGraphErrors = xform4 c_tgrapherrors_newtgrapherrors
-
-newTGraphPolar :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphPolar
-newTGraphPolar = xform4 c_tgraphpolar_newtgraphpolar
-
-newTGraphQQ :: Int -> [Double] -> Int -> [Double] -> IO TGraphQQ
-newTGraphQQ = xform3 c_tgraphqq_newtgraphqq
-
-newTEllipse :: Double -> Double -> Double -> Double -> Double -> Double -> Double -> IO TEllipse
-newTEllipse = xform6 c_tellipse_newtellipse
-
-newTArc :: Double -> Double -> Double -> Double -> Double -> IO TArc
-newTArc = xform4 c_tarc_newtarc
-
-newTCrown :: Double -> Double -> Double -> Double -> Double -> Double -> IO TCrown
-newTCrown = xform5 c_tcrown_newtcrown
-
-newTLine :: Double -> Double -> Double -> Double -> IO TLine
-newTLine = xform3 c_tline_newtline
-
-newTArrow :: Double -> Double -> Double -> Double -> Double -> String -> IO TArrow
-newTArrow = xform5 c_tarrow_newtarrow
-
-newTGaxis :: Double -> Double -> Double -> Double -> Double -> Double -> Int -> String -> Double -> IO TGaxis
-newTGaxis = xform8 c_tgaxis_newtgaxis
-
-newTShape :: String -> String -> String -> IO TShape
-newTShape = xform2 c_tshape_newtshape
-
-newTBRIK :: String -> String -> String -> Double -> Double -> Double -> IO TBRIK
-newTBRIK = xform5 c_tbrik_newtbrik
-
-newTTUBE :: String -> String -> String -> Double -> Double -> Double -> Double -> IO TTUBE
-newTTUBE = xform6 c_ttube_newttube
-
-newTPCON :: String -> String -> String -> Double -> Double -> Int -> IO TPCON
-newTPCON = xform5 c_tpcon_newtpcon
-
-newTSPHE :: String -> String -> String -> Double -> Double -> Double -> Double -> Double -> Double -> IO TSPHE
-newTSPHE = xform8 c_tsphe_newtsphe
-
-newTXTRU :: String -> String -> String -> Int -> Int -> IO TXTRU
-newTXTRU = xform4 c_txtru_newtxtru
-
-newTBox :: Double -> Double -> Double -> Double -> IO TBox
-newTBox = xform3 c_tbox_newtbox
-
-newTPave :: Double -> Double -> Double -> Double -> Int -> String -> IO TPave
-newTPave = xform5 c_tpave_newtpave
-
-newTPaveText :: Double -> Double -> Double -> Double -> String -> IO TPaveText
-newTPaveText = xform4 c_tpavetext_newtpavetext
-
-newTDiamond :: Double -> Double -> Double -> Double -> IO TDiamond
-newTDiamond = xform3 c_tdiamond_newtdiamond
-
-newTPaveStats :: Double -> Double -> Double -> Double -> String -> IO TPaveStats
-newTPaveStats = xform4 c_tpavestats_newtpavestats
-
-newTPavesText :: Double -> Double -> Double -> Double -> Int -> String -> IO TPavesText
-newTPavesText = xform5 c_tpavestext_newtpavestext
-
-newTLegend :: Double -> Double -> Double -> Double -> String -> String -> IO TLegend
-newTLegend = xform5 c_tlegend_newtlegend
-
-newTPaveLabel :: Double -> Double -> Double -> Double -> String -> String -> IO TPaveLabel
-newTPaveLabel = xform5 c_tpavelabel_newtpavelabel
-
-
-
-newTWbox :: Double -> Double -> Double -> Double -> Int -> Int -> Int -> IO TWbox
-newTWbox = xform6 c_twbox_newtwbox
-
-newTFrame :: Double -> Double -> Double -> Double -> IO TFrame
-newTFrame = xform3 c_tframe_newtframe
-
-newTSliderBox :: Double -> Double -> Double -> Double -> Int -> Int -> Int -> IO TSliderBox
-newTSliderBox = xform6 c_tsliderbox_newtsliderbox
-
-newTTree :: String -> String -> Int -> IO TTree
-newTTree = xform2 c_ttree_newttree
-
-newTChain :: String -> String -> IO TChain
-newTChain = xform1 c_tchain_newtchain
-
-newTNtuple :: String -> String -> String -> Int -> IO TNtuple
-newTNtuple = xform3 c_tntuple_newtntuple
-
-newTNtupleD :: String -> String -> String -> Int -> IO TNtupleD
-newTNtupleD = xform3 c_tntupled_newtntupled
-
-
-
-newTPolyLine :: Int -> [Double] -> [Double] -> String -> IO TPolyLine
-newTPolyLine = xform3 c_tpolyline_newtpolyline
-
-newTCurlyLine :: Double -> Double -> Double -> Double -> Double -> Double -> IO TCurlyLine
-newTCurlyLine = xform5 c_tcurlyline_newtcurlyline
-
-newTCurlyArc :: Double -> Double -> Double -> Double -> Double -> Double -> Double -> IO TCurlyArc
-newTCurlyArc = xform6 c_tcurlyarc_newtcurlyarc
-
-
-
-
-
-newTLatex :: Double -> Double -> String -> IO TLatex
-newTLatex = xform2 c_tlatex_newtlatex
-
-
-
-
-
-
-
-newTFile :: String -> String -> String -> Int -> IO TFile
-newTFile = xform3 c_tfile_newtfile
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-newTH1F :: String -> String -> Int -> Double -> Double -> IO TH1F
-newTH1F = xform4 c_th1f_newth1f
-
-
-
-
-
-
-
-
-
-newTH2F :: String -> String -> Int -> Double -> Double -> Int -> Double -> Double -> IO TH2F
-newTH2F = xform7 c_th2f_newth2f
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-newTCanvas :: String -> String -> Int -> Int -> IO TCanvas
-newTCanvas = xform3 c_tcanvas_newtcanvas
-
-
-
-
-
-
-
-
-
-newTApplication :: String -> [Int] -> [String] -> IO TApplication
-newTApplication = xform2 c_tapplication_newtapplication
-
-newTRint :: String -> [Int] -> [String] -> IO TRint
-newTRint = xform2 c_trint_newtrint
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-tLatexDrawLatex :: TLatex -> Double -> Double -> String -> IO TLatex
-tLatexDrawLatex = xform3 c_tlatex_tlatexdrawlatex
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-tH1GetAsymmetry :: TH1 -> TH1 -> Double -> Double -> IO TH1
-tH1GetAsymmetry = xform3 c_th1_th1getasymmetry
-tH1GetBufferLength :: TH1 -> IO Int
-tH1GetBufferLength = xform0 c_th1_th1getbufferlength
-tH1GetBufferSize :: TH1 -> IO Int
-tH1GetBufferSize = xform0 c_th1_th1getbuffersize
-tH1GetDirectory :: TH1 -> IO TDirectory
-tH1GetDirectory = xform0 c_th1_th1getdirectory
-tH1GetXaxis :: TH1 -> IO TAxis
-tH1GetXaxis = xform0 c_th1_th1getxaxis
-tH1GetYaxis :: TH1 -> IO TAxis
-tH1GetYaxis = xform0 c_th1_th1getyaxis
-tH1GetZaxis :: TH1 -> IO TAxis
-tH1GetZaxis = xform0 c_th1_th1getzaxis
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/HROOT/Class/FFI.hsc b/src/HROOT/Class/FFI.hsc
new file mode 100644
--- /dev/null
+++ b/src/HROOT/Class/FFI.hsc
@@ -0,0 +1,3890 @@
+{-# LANGUAGE ForeignFunctionInterface #-}
+
+module HROOT.Class.FFI where
+
+import Foreign.C            
+import Foreign.Ptr
+
+import HROOT.Class.Interface
+
+#include "HROOT.h"
+
+
+
+foreign import ccall "HROOT.h TObject_delete" c_tobject_delete 
+  :: (Ptr RawTObject) -> IO ()
+foreign import ccall "HROOT.h TObject_newTObject" c_tobject_newtobject 
+  :: IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TObject_GetName" c_tobject_getname 
+  :: (Ptr RawTObject) -> IO CString
+foreign import ccall "HROOT.h TObject_Draw" c_tobject_draw 
+  :: (Ptr RawTObject) -> CString -> IO ()
+foreign import ccall "HROOT.h TObject_FindObject" c_tobject_findobject 
+  :: (Ptr RawTObject) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TObject_SaveAs" c_tobject_saveas 
+  :: (Ptr RawTObject) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TObject_Write" c_tobject_write 
+  :: (Ptr RawTObject) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TNamed_GetName" c_tnamed_getname 
+  :: (Ptr RawTNamed) -> IO CString
+foreign import ccall "HROOT.h TNamed_Draw" c_tnamed_draw 
+  :: (Ptr RawTNamed) -> CString -> IO ()
+foreign import ccall "HROOT.h TNamed_FindObject" c_tnamed_findobject 
+  :: (Ptr RawTNamed) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TNamed_SaveAs" c_tnamed_saveas 
+  :: (Ptr RawTNamed) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TNamed_Write" c_tnamed_write 
+  :: (Ptr RawTNamed) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TNamed_delete" c_tnamed_delete 
+  :: (Ptr RawTNamed) -> IO ()
+foreign import ccall "HROOT.h TNamed_newTNamed" c_tnamed_newtnamed 
+  :: CString -> CString -> IO (Ptr RawTNamed)
+foreign import ccall "HROOT.h TNamed_SetTitle" c_tnamed_settitle 
+  :: (Ptr RawTNamed) -> CString -> IO ()
+
+foreign import ccall "HROOT.h TFormula_SetTitle" c_tformula_settitle 
+  :: (Ptr RawTFormula) -> CString -> IO ()
+foreign import ccall "HROOT.h TFormula_GetName" c_tformula_getname 
+  :: (Ptr RawTFormula) -> IO CString
+foreign import ccall "HROOT.h TFormula_Draw" c_tformula_draw 
+  :: (Ptr RawTFormula) -> CString -> IO ()
+foreign import ccall "HROOT.h TFormula_FindObject" c_tformula_findobject 
+  :: (Ptr RawTFormula) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TFormula_SaveAs" c_tformula_saveas 
+  :: (Ptr RawTFormula) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TFormula_Write" c_tformula_write 
+  :: (Ptr RawTFormula) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TFormula_delete" c_tformula_delete 
+  :: (Ptr RawTFormula) -> IO ()
+foreign import ccall "HROOT.h TFormula_newTFormula" c_tformula_newtformula 
+  :: CString -> CString -> IO (Ptr RawTFormula)
+foreign import ccall "HROOT.h TFormula_GetParameter" c_tformula_getparameter 
+  :: (Ptr RawTFormula) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TFormula_SetParameter" c_tformula_setparameter 
+  :: (Ptr RawTFormula) -> CInt -> CDouble -> IO ()
+
+foreign import ccall "HROOT.h TAtt3D_delete" c_tatt3d_delete 
+  :: (Ptr RawTAtt3D) -> IO ()
+
+foreign import ccall "HROOT.h TAttAxis_delete" c_tattaxis_delete 
+  :: (Ptr RawTAttAxis) -> IO ()
+foreign import ccall "HROOT.h TAttAxis_newTAttAxis" c_tattaxis_newtattaxis 
+  :: IO (Ptr RawTAttAxis)
+foreign import ccall "HROOT.h TAttAxis_SetLabelColor" c_tattaxis_setlabelcolor 
+  :: (Ptr RawTAttAxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAttAxis_SetLabelSize" c_tattaxis_setlabelsize 
+  :: (Ptr RawTAttAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAttAxis_SetTickLength" c_tattaxis_setticklength 
+  :: (Ptr RawTAttAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAttAxis_SetTitleOffset" c_tattaxis_settitleoffset 
+  :: (Ptr RawTAttAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAttAxis_SetNdivisions" c_tattaxis_setndivisions 
+  :: (Ptr RawTAttAxis) -> CInt -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TAttBBox_delete" c_tattbbox_delete 
+  :: (Ptr RawTAttBBox) -> IO ()
+
+foreign import ccall "HROOT.h TAttCanvas_delete" c_tattcanvas_delete 
+  :: (Ptr RawTAttCanvas) -> IO ()
+foreign import ccall "HROOT.h TAttCanvas_newTAttCanvas" c_tattcanvas_newtattcanvas 
+  :: IO (Ptr RawTAttCanvas)
+
+foreign import ccall "HROOT.h TAttFill_delete" c_tattfill_delete 
+  :: (Ptr RawTAttFill) -> IO ()
+foreign import ccall "HROOT.h TAttFill_newTAttFill" c_tattfill_newtattfill 
+  :: CInt -> CInt -> IO (Ptr RawTAttFill)
+foreign import ccall "HROOT.h TAttFill_SetFillColor" c_tattfill_setfillcolor 
+  :: (Ptr RawTAttFill) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAttFill_SetFillStyle" c_tattfill_setfillstyle 
+  :: (Ptr RawTAttFill) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TAttImage_delete" c_tattimage_delete 
+  :: (Ptr RawTAttImage) -> IO ()
+
+foreign import ccall "HROOT.h TAttLine_delete" c_tattline_delete 
+  :: (Ptr RawTAttLine) -> IO ()
+foreign import ccall "HROOT.h TAttLine_newTAttLine" c_tattline_newtattline 
+  :: CInt -> CInt -> CInt -> IO (Ptr RawTAttLine)
+foreign import ccall "HROOT.h TAttLine_SetLineColor" c_tattline_setlinecolor 
+  :: (Ptr RawTAttLine) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TAttMarker_delete" c_tattmarker_delete 
+  :: (Ptr RawTAttMarker) -> IO ()
+foreign import ccall "HROOT.h TAttMarker_newTAttMarker" c_tattmarker_newtattmarker 
+  :: CInt -> CInt -> CInt -> IO (Ptr RawTAttMarker)
+
+foreign import ccall "HROOT.h TAttPad_delete" c_tattpad_delete 
+  :: (Ptr RawTAttPad) -> IO ()
+foreign import ccall "HROOT.h TAttPad_newTAttPad" c_tattpad_newtattpad 
+  :: IO (Ptr RawTAttPad)
+
+foreign import ccall "HROOT.h TAttParticle_SetTitle" c_tattparticle_settitle 
+  :: (Ptr RawTAttParticle) -> CString -> IO ()
+foreign import ccall "HROOT.h TAttParticle_GetName" c_tattparticle_getname 
+  :: (Ptr RawTAttParticle) -> IO CString
+foreign import ccall "HROOT.h TAttParticle_Draw" c_tattparticle_draw 
+  :: (Ptr RawTAttParticle) -> CString -> IO ()
+foreign import ccall "HROOT.h TAttParticle_FindObject" c_tattparticle_findobject 
+  :: (Ptr RawTAttParticle) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TAttParticle_SaveAs" c_tattparticle_saveas 
+  :: (Ptr RawTAttParticle) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TAttParticle_Write" c_tattparticle_write 
+  :: (Ptr RawTAttParticle) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TAttParticle_delete" c_tattparticle_delete 
+  :: (Ptr RawTAttParticle) -> IO ()
+
+foreign import ccall "HROOT.h TAttText_delete" c_tatttext_delete 
+  :: (Ptr RawTAttText) -> IO ()
+foreign import ccall "HROOT.h TAttText_newTAttText" c_tatttext_newtatttext 
+  :: CInt -> CDouble -> CInt -> CInt -> CDouble -> IO (Ptr RawTAttText)
+foreign import ccall "HROOT.h TAttText_SetTextColor" c_tatttext_settextcolor 
+  :: (Ptr RawTAttText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAttText_SetTextAlign" c_tatttext_settextalign 
+  :: (Ptr RawTAttText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAttText_SetTextSize" c_tatttext_settextsize 
+  :: (Ptr RawTAttText) -> CDouble -> IO ()
+
+foreign import ccall "HROOT.h THStack_SetTitle" c_thstack_settitle 
+  :: (Ptr RawTHStack) -> CString -> IO ()
+foreign import ccall "HROOT.h THStack_GetName" c_thstack_getname 
+  :: (Ptr RawTHStack) -> IO CString
+foreign import ccall "HROOT.h THStack_Draw" c_thstack_draw 
+  :: (Ptr RawTHStack) -> CString -> IO ()
+foreign import ccall "HROOT.h THStack_FindObject" c_thstack_findobject 
+  :: (Ptr RawTHStack) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h THStack_SaveAs" c_thstack_saveas 
+  :: (Ptr RawTHStack) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h THStack_Write" c_thstack_write 
+  :: (Ptr RawTHStack) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h THStack_delete" c_thstack_delete 
+  :: (Ptr RawTHStack) -> IO ()
+foreign import ccall "HROOT.h THStack_newTHStack" c_thstack_newthstack 
+  :: CString -> CString -> IO (Ptr RawTHStack)
+
+foreign import ccall "HROOT.h TF1_GetParameter" c_tf1_getparameter 
+  :: (Ptr RawTF1) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TF1_SetParameter" c_tf1_setparameter 
+  :: (Ptr RawTF1) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TF1_SetLineColor" c_tf1_setlinecolor 
+  :: (Ptr RawTF1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TF1_SetFillColor" c_tf1_setfillcolor 
+  :: (Ptr RawTF1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TF1_SetFillStyle" c_tf1_setfillstyle 
+  :: (Ptr RawTF1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TF1_SetTitle" c_tf1_settitle 
+  :: (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TF1_GetName" c_tf1_getname 
+  :: (Ptr RawTF1) -> IO CString
+foreign import ccall "HROOT.h TF1_Draw" c_tf1_draw 
+  :: (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TF1_FindObject" c_tf1_findobject 
+  :: (Ptr RawTF1) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TF1_SaveAs" c_tf1_saveas 
+  :: (Ptr RawTF1) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TF1_Write" c_tf1_write 
+  :: (Ptr RawTF1) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TF1_delete" c_tf1_delete 
+  :: (Ptr RawTF1) -> IO ()
+foreign import ccall "HROOT.h TF1_newTF1" c_tf1_newtf1 
+  :: CString -> CString -> CDouble -> CDouble -> IO (Ptr RawTF1)
+
+foreign import ccall "HROOT.h TGraph_SetTitle" c_tgraph_settitle 
+  :: (Ptr RawTGraph) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraph_SetLineColor" c_tgraph_setlinecolor 
+  :: (Ptr RawTGraph) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraph_SetFillColor" c_tgraph_setfillcolor 
+  :: (Ptr RawTGraph) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraph_SetFillStyle" c_tgraph_setfillstyle 
+  :: (Ptr RawTGraph) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraph_GetName" c_tgraph_getname 
+  :: (Ptr RawTGraph) -> IO CString
+foreign import ccall "HROOT.h TGraph_Draw" c_tgraph_draw 
+  :: (Ptr RawTGraph) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraph_FindObject" c_tgraph_findobject 
+  :: (Ptr RawTGraph) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TGraph_SaveAs" c_tgraph_saveas 
+  :: (Ptr RawTGraph) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraph_Write" c_tgraph_write 
+  :: (Ptr RawTGraph) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraph_delete" c_tgraph_delete 
+  :: (Ptr RawTGraph) -> IO ()
+foreign import ccall "HROOT.h TGraph_newTGraph" c_tgraph_newtgraph 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraph)
+
+foreign import ccall "HROOT.h TGraphAsymmErrors_SetTitle" c_tgraphasymmerrors_settitle 
+  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_SetLineColor" c_tgraphasymmerrors_setlinecolor 
+  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_SetFillColor" c_tgraphasymmerrors_setfillcolor 
+  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_SetFillStyle" c_tgraphasymmerrors_setfillstyle 
+  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_GetName" c_tgraphasymmerrors_getname 
+  :: (Ptr RawTGraphAsymmErrors) -> IO CString
+foreign import ccall "HROOT.h TGraphAsymmErrors_Draw" c_tgraphasymmerrors_draw 
+  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_FindObject" c_tgraphasymmerrors_findobject 
+  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TGraphAsymmErrors_SaveAs" c_tgraphasymmerrors_saveas 
+  :: (Ptr RawTGraphAsymmErrors) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_Write" c_tgraphasymmerrors_write 
+  :: (Ptr RawTGraphAsymmErrors) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphAsymmErrors_delete" c_tgraphasymmerrors_delete 
+  :: (Ptr RawTGraphAsymmErrors) -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_newTGraphAsymmErrors" c_tgraphasymmerrors_newtgraphasymmerrors 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphAsymmErrors)
+
+foreign import ccall "HROOT.h TCutG_SetTitle" c_tcutg_settitle 
+  :: (Ptr RawTCutG) -> CString -> IO ()
+foreign import ccall "HROOT.h TCutG_SetLineColor" c_tcutg_setlinecolor 
+  :: (Ptr RawTCutG) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCutG_SetFillColor" c_tcutg_setfillcolor 
+  :: (Ptr RawTCutG) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCutG_SetFillStyle" c_tcutg_setfillstyle 
+  :: (Ptr RawTCutG) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCutG_GetName" c_tcutg_getname 
+  :: (Ptr RawTCutG) -> IO CString
+foreign import ccall "HROOT.h TCutG_Draw" c_tcutg_draw 
+  :: (Ptr RawTCutG) -> CString -> IO ()
+foreign import ccall "HROOT.h TCutG_FindObject" c_tcutg_findobject 
+  :: (Ptr RawTCutG) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TCutG_SaveAs" c_tcutg_saveas 
+  :: (Ptr RawTCutG) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCutG_Write" c_tcutg_write 
+  :: (Ptr RawTCutG) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCutG_delete" c_tcutg_delete 
+  :: (Ptr RawTCutG) -> IO ()
+foreign import ccall "HROOT.h TCutG_newTCutG" c_tcutg_newtcutg 
+  :: CString -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTCutG)
+
+foreign import ccall "HROOT.h TGraphBentErrors_SetTitle" c_tgraphbenterrors_settitle 
+  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_SetLineColor" c_tgraphbenterrors_setlinecolor 
+  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_SetFillColor" c_tgraphbenterrors_setfillcolor 
+  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_SetFillStyle" c_tgraphbenterrors_setfillstyle 
+  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_GetName" c_tgraphbenterrors_getname 
+  :: (Ptr RawTGraphBentErrors) -> IO CString
+foreign import ccall "HROOT.h TGraphBentErrors_Draw" c_tgraphbenterrors_draw 
+  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_FindObject" c_tgraphbenterrors_findobject 
+  :: (Ptr RawTGraphBentErrors) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TGraphBentErrors_SaveAs" c_tgraphbenterrors_saveas 
+  :: (Ptr RawTGraphBentErrors) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_Write" c_tgraphbenterrors_write 
+  :: (Ptr RawTGraphBentErrors) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphBentErrors_delete" c_tgraphbenterrors_delete 
+  :: (Ptr RawTGraphBentErrors) -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_newTGraphBentErrors" c_tgraphbenterrors_newtgraphbenterrors 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphBentErrors)
+
+foreign import ccall "HROOT.h TGraphErrors_SetTitle" c_tgrapherrors_settitle 
+  :: (Ptr RawTGraphErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_SetLineColor" c_tgrapherrors_setlinecolor 
+  :: (Ptr RawTGraphErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_SetFillColor" c_tgrapherrors_setfillcolor 
+  :: (Ptr RawTGraphErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_SetFillStyle" c_tgrapherrors_setfillstyle 
+  :: (Ptr RawTGraphErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_GetName" c_tgrapherrors_getname 
+  :: (Ptr RawTGraphErrors) -> IO CString
+foreign import ccall "HROOT.h TGraphErrors_Draw" c_tgrapherrors_draw 
+  :: (Ptr RawTGraphErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_FindObject" c_tgrapherrors_findobject 
+  :: (Ptr RawTGraphErrors) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TGraphErrors_SaveAs" c_tgrapherrors_saveas 
+  :: (Ptr RawTGraphErrors) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_Write" c_tgrapherrors_write 
+  :: (Ptr RawTGraphErrors) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphErrors_delete" c_tgrapherrors_delete 
+  :: (Ptr RawTGraphErrors) -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_newTGraphErrors" c_tgrapherrors_newtgrapherrors 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphErrors)
+
+foreign import ccall "HROOT.h TGraphPolar_SetTitle" c_tgraphpolar_settitle 
+  :: (Ptr RawTGraphPolar) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_SetLineColor" c_tgraphpolar_setlinecolor 
+  :: (Ptr RawTGraphPolar) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_SetFillColor" c_tgraphpolar_setfillcolor 
+  :: (Ptr RawTGraphPolar) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_SetFillStyle" c_tgraphpolar_setfillstyle 
+  :: (Ptr RawTGraphPolar) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_GetName" c_tgraphpolar_getname 
+  :: (Ptr RawTGraphPolar) -> IO CString
+foreign import ccall "HROOT.h TGraphPolar_Draw" c_tgraphpolar_draw 
+  :: (Ptr RawTGraphPolar) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_FindObject" c_tgraphpolar_findobject 
+  :: (Ptr RawTGraphPolar) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TGraphPolar_SaveAs" c_tgraphpolar_saveas 
+  :: (Ptr RawTGraphPolar) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_Write" c_tgraphpolar_write 
+  :: (Ptr RawTGraphPolar) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphPolar_delete" c_tgraphpolar_delete 
+  :: (Ptr RawTGraphPolar) -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_newTGraphPolar" c_tgraphpolar_newtgraphpolar 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphPolar)
+
+foreign import ccall "HROOT.h TGraphQQ_SetTitle" c_tgraphqq_settitle 
+  :: (Ptr RawTGraphQQ) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_SetLineColor" c_tgraphqq_setlinecolor 
+  :: (Ptr RawTGraphQQ) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_SetFillColor" c_tgraphqq_setfillcolor 
+  :: (Ptr RawTGraphQQ) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_SetFillStyle" c_tgraphqq_setfillstyle 
+  :: (Ptr RawTGraphQQ) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_GetName" c_tgraphqq_getname 
+  :: (Ptr RawTGraphQQ) -> IO CString
+foreign import ccall "HROOT.h TGraphQQ_Draw" c_tgraphqq_draw 
+  :: (Ptr RawTGraphQQ) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_FindObject" c_tgraphqq_findobject 
+  :: (Ptr RawTGraphQQ) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TGraphQQ_SaveAs" c_tgraphqq_saveas 
+  :: (Ptr RawTGraphQQ) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_Write" c_tgraphqq_write 
+  :: (Ptr RawTGraphQQ) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphQQ_delete" c_tgraphqq_delete 
+  :: (Ptr RawTGraphQQ) -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_newTGraphQQ" c_tgraphqq_newtgraphqq 
+  :: CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO (Ptr RawTGraphQQ)
+
+foreign import ccall "HROOT.h TEllipse_GetName" c_tellipse_getname 
+  :: (Ptr RawTEllipse) -> IO CString
+foreign import ccall "HROOT.h TEllipse_Draw" c_tellipse_draw 
+  :: (Ptr RawTEllipse) -> CString -> IO ()
+foreign import ccall "HROOT.h TEllipse_FindObject" c_tellipse_findobject 
+  :: (Ptr RawTEllipse) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TEllipse_SaveAs" c_tellipse_saveas 
+  :: (Ptr RawTEllipse) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TEllipse_Write" c_tellipse_write 
+  :: (Ptr RawTEllipse) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TEllipse_SetLineColor" c_tellipse_setlinecolor 
+  :: (Ptr RawTEllipse) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEllipse_SetFillColor" c_tellipse_setfillcolor 
+  :: (Ptr RawTEllipse) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEllipse_SetFillStyle" c_tellipse_setfillstyle 
+  :: (Ptr RawTEllipse) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEllipse_delete" c_tellipse_delete 
+  :: (Ptr RawTEllipse) -> IO ()
+foreign import ccall "HROOT.h TEllipse_newTEllipse" c_tellipse_newtellipse 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTEllipse)
+
+foreign import ccall "HROOT.h TArc_GetName" c_tarc_getname 
+  :: (Ptr RawTArc) -> IO CString
+foreign import ccall "HROOT.h TArc_Draw" c_tarc_draw 
+  :: (Ptr RawTArc) -> CString -> IO ()
+foreign import ccall "HROOT.h TArc_FindObject" c_tarc_findobject 
+  :: (Ptr RawTArc) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TArc_SaveAs" c_tarc_saveas 
+  :: (Ptr RawTArc) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TArc_Write" c_tarc_write 
+  :: (Ptr RawTArc) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TArc_SetLineColor" c_tarc_setlinecolor 
+  :: (Ptr RawTArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArc_SetFillColor" c_tarc_setfillcolor 
+  :: (Ptr RawTArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArc_SetFillStyle" c_tarc_setfillstyle 
+  :: (Ptr RawTArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArc_delete" c_tarc_delete 
+  :: (Ptr RawTArc) -> IO ()
+foreign import ccall "HROOT.h TArc_newTArc" c_tarc_newtarc 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTArc)
+
+foreign import ccall "HROOT.h TCrown_GetName" c_tcrown_getname 
+  :: (Ptr RawTCrown) -> IO CString
+foreign import ccall "HROOT.h TCrown_Draw" c_tcrown_draw 
+  :: (Ptr RawTCrown) -> CString -> IO ()
+foreign import ccall "HROOT.h TCrown_FindObject" c_tcrown_findobject 
+  :: (Ptr RawTCrown) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TCrown_SaveAs" c_tcrown_saveas 
+  :: (Ptr RawTCrown) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCrown_Write" c_tcrown_write 
+  :: (Ptr RawTCrown) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCrown_SetLineColor" c_tcrown_setlinecolor 
+  :: (Ptr RawTCrown) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCrown_SetFillColor" c_tcrown_setfillcolor 
+  :: (Ptr RawTCrown) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCrown_SetFillStyle" c_tcrown_setfillstyle 
+  :: (Ptr RawTCrown) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCrown_delete" c_tcrown_delete 
+  :: (Ptr RawTCrown) -> IO ()
+foreign import ccall "HROOT.h TCrown_newTCrown" c_tcrown_newtcrown 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTCrown)
+
+foreign import ccall "HROOT.h TLine_GetName" c_tline_getname 
+  :: (Ptr RawTLine) -> IO CString
+foreign import ccall "HROOT.h TLine_Draw" c_tline_draw 
+  :: (Ptr RawTLine) -> CString -> IO ()
+foreign import ccall "HROOT.h TLine_FindObject" c_tline_findobject 
+  :: (Ptr RawTLine) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TLine_SaveAs" c_tline_saveas 
+  :: (Ptr RawTLine) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TLine_Write" c_tline_write 
+  :: (Ptr RawTLine) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TLine_SetLineColor" c_tline_setlinecolor 
+  :: (Ptr RawTLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLine_delete" c_tline_delete 
+  :: (Ptr RawTLine) -> IO ()
+foreign import ccall "HROOT.h TLine_newTLine" c_tline_newtline 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTLine)
+
+foreign import ccall "HROOT.h TArrow_SetFillColor" c_tarrow_setfillcolor 
+  :: (Ptr RawTArrow) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArrow_SetFillStyle" c_tarrow_setfillstyle 
+  :: (Ptr RawTArrow) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArrow_GetName" c_tarrow_getname 
+  :: (Ptr RawTArrow) -> IO CString
+foreign import ccall "HROOT.h TArrow_Draw" c_tarrow_draw 
+  :: (Ptr RawTArrow) -> CString -> IO ()
+foreign import ccall "HROOT.h TArrow_FindObject" c_tarrow_findobject 
+  :: (Ptr RawTArrow) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TArrow_SaveAs" c_tarrow_saveas 
+  :: (Ptr RawTArrow) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TArrow_Write" c_tarrow_write 
+  :: (Ptr RawTArrow) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TArrow_SetLineColor" c_tarrow_setlinecolor 
+  :: (Ptr RawTArrow) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArrow_delete" c_tarrow_delete 
+  :: (Ptr RawTArrow) -> IO ()
+foreign import ccall "HROOT.h TArrow_newTArrow" c_tarrow_newtarrow 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTArrow)
+
+foreign import ccall "HROOT.h TGaxis_SetTextColor" c_tgaxis_settextcolor 
+  :: (Ptr RawTGaxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGaxis_SetTextAlign" c_tgaxis_settextalign 
+  :: (Ptr RawTGaxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGaxis_SetTextSize" c_tgaxis_settextsize 
+  :: (Ptr RawTGaxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TGaxis_GetName" c_tgaxis_getname 
+  :: (Ptr RawTGaxis) -> IO CString
+foreign import ccall "HROOT.h TGaxis_Draw" c_tgaxis_draw 
+  :: (Ptr RawTGaxis) -> CString -> IO ()
+foreign import ccall "HROOT.h TGaxis_FindObject" c_tgaxis_findobject 
+  :: (Ptr RawTGaxis) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TGaxis_SaveAs" c_tgaxis_saveas 
+  :: (Ptr RawTGaxis) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGaxis_Write" c_tgaxis_write 
+  :: (Ptr RawTGaxis) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGaxis_SetLineColor" c_tgaxis_setlinecolor 
+  :: (Ptr RawTGaxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGaxis_delete" c_tgaxis_delete 
+  :: (Ptr RawTGaxis) -> IO ()
+foreign import ccall "HROOT.h TGaxis_newTGaxis" c_tgaxis_newtgaxis 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CString -> CDouble -> IO (Ptr RawTGaxis)
+
+foreign import ccall "HROOT.h TShape_SetTitle" c_tshape_settitle 
+  :: (Ptr RawTShape) -> CString -> IO ()
+foreign import ccall "HROOT.h TShape_SetLineColor" c_tshape_setlinecolor 
+  :: (Ptr RawTShape) -> CInt -> IO ()
+foreign import ccall "HROOT.h TShape_SetFillColor" c_tshape_setfillcolor 
+  :: (Ptr RawTShape) -> CInt -> IO ()
+foreign import ccall "HROOT.h TShape_SetFillStyle" c_tshape_setfillstyle 
+  :: (Ptr RawTShape) -> CInt -> IO ()
+foreign import ccall "HROOT.h TShape_GetName" c_tshape_getname 
+  :: (Ptr RawTShape) -> IO CString
+foreign import ccall "HROOT.h TShape_Draw" c_tshape_draw 
+  :: (Ptr RawTShape) -> CString -> IO ()
+foreign import ccall "HROOT.h TShape_FindObject" c_tshape_findobject 
+  :: (Ptr RawTShape) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TShape_SaveAs" c_tshape_saveas 
+  :: (Ptr RawTShape) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TShape_Write" c_tshape_write 
+  :: (Ptr RawTShape) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TShape_delete" c_tshape_delete 
+  :: (Ptr RawTShape) -> IO ()
+foreign import ccall "HROOT.h TShape_newTShape" c_tshape_newtshape 
+  :: CString -> CString -> CString -> IO (Ptr RawTShape)
+
+foreign import ccall "HROOT.h TBRIK_SetTitle" c_tbrik_settitle 
+  :: (Ptr RawTBRIK) -> CString -> IO ()
+foreign import ccall "HROOT.h TBRIK_SetLineColor" c_tbrik_setlinecolor 
+  :: (Ptr RawTBRIK) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBRIK_SetFillColor" c_tbrik_setfillcolor 
+  :: (Ptr RawTBRIK) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBRIK_SetFillStyle" c_tbrik_setfillstyle 
+  :: (Ptr RawTBRIK) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBRIK_GetName" c_tbrik_getname 
+  :: (Ptr RawTBRIK) -> IO CString
+foreign import ccall "HROOT.h TBRIK_Draw" c_tbrik_draw 
+  :: (Ptr RawTBRIK) -> CString -> IO ()
+foreign import ccall "HROOT.h TBRIK_FindObject" c_tbrik_findobject 
+  :: (Ptr RawTBRIK) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TBRIK_SaveAs" c_tbrik_saveas 
+  :: (Ptr RawTBRIK) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TBRIK_Write" c_tbrik_write 
+  :: (Ptr RawTBRIK) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TBRIK_delete" c_tbrik_delete 
+  :: (Ptr RawTBRIK) -> IO ()
+foreign import ccall "HROOT.h TBRIK_newTBRIK" c_tbrik_newtbrik 
+  :: CString -> CString -> CString -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTBRIK)
+
+foreign import ccall "HROOT.h TTUBE_SetTitle" c_ttube_settitle 
+  :: (Ptr RawTTUBE) -> CString -> IO ()
+foreign import ccall "HROOT.h TTUBE_SetLineColor" c_ttube_setlinecolor 
+  :: (Ptr RawTTUBE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTUBE_SetFillColor" c_ttube_setfillcolor 
+  :: (Ptr RawTTUBE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTUBE_SetFillStyle" c_ttube_setfillstyle 
+  :: (Ptr RawTTUBE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTUBE_GetName" c_ttube_getname 
+  :: (Ptr RawTTUBE) -> IO CString
+foreign import ccall "HROOT.h TTUBE_Draw" c_ttube_draw 
+  :: (Ptr RawTTUBE) -> CString -> IO ()
+foreign import ccall "HROOT.h TTUBE_FindObject" c_ttube_findobject 
+  :: (Ptr RawTTUBE) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TTUBE_SaveAs" c_ttube_saveas 
+  :: (Ptr RawTTUBE) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TTUBE_Write" c_ttube_write 
+  :: (Ptr RawTTUBE) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TTUBE_delete" c_ttube_delete 
+  :: (Ptr RawTTUBE) -> IO ()
+foreign import ccall "HROOT.h TTUBE_newTTUBE" c_ttube_newttube 
+  :: CString -> CString -> CString -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTTUBE)
+
+foreign import ccall "HROOT.h TPCON_SetTitle" c_tpcon_settitle 
+  :: (Ptr RawTPCON) -> CString -> IO ()
+foreign import ccall "HROOT.h TPCON_SetLineColor" c_tpcon_setlinecolor 
+  :: (Ptr RawTPCON) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPCON_SetFillColor" c_tpcon_setfillcolor 
+  :: (Ptr RawTPCON) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPCON_SetFillStyle" c_tpcon_setfillstyle 
+  :: (Ptr RawTPCON) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPCON_GetName" c_tpcon_getname 
+  :: (Ptr RawTPCON) -> IO CString
+foreign import ccall "HROOT.h TPCON_Draw" c_tpcon_draw 
+  :: (Ptr RawTPCON) -> CString -> IO ()
+foreign import ccall "HROOT.h TPCON_FindObject" c_tpcon_findobject 
+  :: (Ptr RawTPCON) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TPCON_SaveAs" c_tpcon_saveas 
+  :: (Ptr RawTPCON) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPCON_Write" c_tpcon_write 
+  :: (Ptr RawTPCON) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPCON_delete" c_tpcon_delete 
+  :: (Ptr RawTPCON) -> IO ()
+foreign import ccall "HROOT.h TPCON_newTPCON" c_tpcon_newtpcon 
+  :: CString -> CString -> CString -> CDouble -> CDouble -> CInt -> IO (Ptr RawTPCON)
+
+foreign import ccall "HROOT.h TSPHE_SetTitle" c_tsphe_settitle 
+  :: (Ptr RawTSPHE) -> CString -> IO ()
+foreign import ccall "HROOT.h TSPHE_SetLineColor" c_tsphe_setlinecolor 
+  :: (Ptr RawTSPHE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSPHE_SetFillColor" c_tsphe_setfillcolor 
+  :: (Ptr RawTSPHE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSPHE_SetFillStyle" c_tsphe_setfillstyle 
+  :: (Ptr RawTSPHE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSPHE_GetName" c_tsphe_getname 
+  :: (Ptr RawTSPHE) -> IO CString
+foreign import ccall "HROOT.h TSPHE_Draw" c_tsphe_draw 
+  :: (Ptr RawTSPHE) -> CString -> IO ()
+foreign import ccall "HROOT.h TSPHE_FindObject" c_tsphe_findobject 
+  :: (Ptr RawTSPHE) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TSPHE_SaveAs" c_tsphe_saveas 
+  :: (Ptr RawTSPHE) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TSPHE_Write" c_tsphe_write 
+  :: (Ptr RawTSPHE) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TSPHE_delete" c_tsphe_delete 
+  :: (Ptr RawTSPHE) -> IO ()
+foreign import ccall "HROOT.h TSPHE_newTSPHE" c_tsphe_newtsphe 
+  :: CString -> CString -> CString -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTSPHE)
+
+foreign import ccall "HROOT.h TXTRU_SetTitle" c_txtru_settitle 
+  :: (Ptr RawTXTRU) -> CString -> IO ()
+foreign import ccall "HROOT.h TXTRU_SetLineColor" c_txtru_setlinecolor 
+  :: (Ptr RawTXTRU) -> CInt -> IO ()
+foreign import ccall "HROOT.h TXTRU_SetFillColor" c_txtru_setfillcolor 
+  :: (Ptr RawTXTRU) -> CInt -> IO ()
+foreign import ccall "HROOT.h TXTRU_SetFillStyle" c_txtru_setfillstyle 
+  :: (Ptr RawTXTRU) -> CInt -> IO ()
+foreign import ccall "HROOT.h TXTRU_GetName" c_txtru_getname 
+  :: (Ptr RawTXTRU) -> IO CString
+foreign import ccall "HROOT.h TXTRU_Draw" c_txtru_draw 
+  :: (Ptr RawTXTRU) -> CString -> IO ()
+foreign import ccall "HROOT.h TXTRU_FindObject" c_txtru_findobject 
+  :: (Ptr RawTXTRU) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TXTRU_SaveAs" c_txtru_saveas 
+  :: (Ptr RawTXTRU) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TXTRU_Write" c_txtru_write 
+  :: (Ptr RawTXTRU) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TXTRU_delete" c_txtru_delete 
+  :: (Ptr RawTXTRU) -> IO ()
+foreign import ccall "HROOT.h TXTRU_newTXTRU" c_txtru_newtxtru 
+  :: CString -> CString -> CString -> CInt -> CInt -> IO (Ptr RawTXTRU)
+
+foreign import ccall "HROOT.h TBox_GetName" c_tbox_getname 
+  :: (Ptr RawTBox) -> IO CString
+foreign import ccall "HROOT.h TBox_Draw" c_tbox_draw 
+  :: (Ptr RawTBox) -> CString -> IO ()
+foreign import ccall "HROOT.h TBox_FindObject" c_tbox_findobject 
+  :: (Ptr RawTBox) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TBox_SaveAs" c_tbox_saveas 
+  :: (Ptr RawTBox) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TBox_Write" c_tbox_write 
+  :: (Ptr RawTBox) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TBox_SetLineColor" c_tbox_setlinecolor 
+  :: (Ptr RawTBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBox_SetFillColor" c_tbox_setfillcolor 
+  :: (Ptr RawTBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBox_SetFillStyle" c_tbox_setfillstyle 
+  :: (Ptr RawTBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBox_delete" c_tbox_delete 
+  :: (Ptr RawTBox) -> IO ()
+foreign import ccall "HROOT.h TBox_newTBox" c_tbox_newtbox 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTBox)
+
+foreign import ccall "HROOT.h TPave_GetName" c_tpave_getname 
+  :: (Ptr RawTPave) -> IO CString
+foreign import ccall "HROOT.h TPave_Draw" c_tpave_draw 
+  :: (Ptr RawTPave) -> CString -> IO ()
+foreign import ccall "HROOT.h TPave_FindObject" c_tpave_findobject 
+  :: (Ptr RawTPave) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TPave_SaveAs" c_tpave_saveas 
+  :: (Ptr RawTPave) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPave_Write" c_tpave_write 
+  :: (Ptr RawTPave) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPave_SetLineColor" c_tpave_setlinecolor 
+  :: (Ptr RawTPave) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPave_SetFillColor" c_tpave_setfillcolor 
+  :: (Ptr RawTPave) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPave_SetFillStyle" c_tpave_setfillstyle 
+  :: (Ptr RawTPave) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPave_delete" c_tpave_delete 
+  :: (Ptr RawTPave) -> IO ()
+foreign import ccall "HROOT.h TPave_newTPave" c_tpave_newtpave 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CString -> IO (Ptr RawTPave)
+
+foreign import ccall "HROOT.h TPaveText_SetTextColor" c_tpavetext_settextcolor 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_SetTextAlign" c_tpavetext_settextalign 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_SetTextSize" c_tpavetext_settextsize 
+  :: (Ptr RawTPaveText) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPaveText_GetName" c_tpavetext_getname 
+  :: (Ptr RawTPaveText) -> IO CString
+foreign import ccall "HROOT.h TPaveText_Draw" c_tpavetext_draw 
+  :: (Ptr RawTPaveText) -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveText_FindObject" c_tpavetext_findobject 
+  :: (Ptr RawTPaveText) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TPaveText_SaveAs" c_tpavetext_saveas 
+  :: (Ptr RawTPaveText) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveText_Write" c_tpavetext_write 
+  :: (Ptr RawTPaveText) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPaveText_SetLineColor" c_tpavetext_setlinecolor 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_SetFillColor" c_tpavetext_setfillcolor 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_SetFillStyle" c_tpavetext_setfillstyle 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_delete" c_tpavetext_delete 
+  :: (Ptr RawTPaveText) -> IO ()
+foreign import ccall "HROOT.h TPaveText_newTPaveText" c_tpavetext_newtpavetext 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTPaveText)
+
+foreign import ccall "HROOT.h TDiamond_SetTextColor" c_tdiamond_settextcolor 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_SetTextAlign" c_tdiamond_settextalign 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_SetTextSize" c_tdiamond_settextsize 
+  :: (Ptr RawTDiamond) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TDiamond_GetName" c_tdiamond_getname 
+  :: (Ptr RawTDiamond) -> IO CString
+foreign import ccall "HROOT.h TDiamond_Draw" c_tdiamond_draw 
+  :: (Ptr RawTDiamond) -> CString -> IO ()
+foreign import ccall "HROOT.h TDiamond_FindObject" c_tdiamond_findobject 
+  :: (Ptr RawTDiamond) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TDiamond_SaveAs" c_tdiamond_saveas 
+  :: (Ptr RawTDiamond) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TDiamond_Write" c_tdiamond_write 
+  :: (Ptr RawTDiamond) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TDiamond_SetLineColor" c_tdiamond_setlinecolor 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_SetFillColor" c_tdiamond_setfillcolor 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_SetFillStyle" c_tdiamond_setfillstyle 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_delete" c_tdiamond_delete 
+  :: (Ptr RawTDiamond) -> IO ()
+foreign import ccall "HROOT.h TDiamond_newTDiamond" c_tdiamond_newtdiamond 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTDiamond)
+
+foreign import ccall "HROOT.h TPaveStats_SetTextColor" c_tpavestats_settextcolor 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_SetTextAlign" c_tpavestats_settextalign 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_SetTextSize" c_tpavestats_settextsize 
+  :: (Ptr RawTPaveStats) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPaveStats_GetName" c_tpavestats_getname 
+  :: (Ptr RawTPaveStats) -> IO CString
+foreign import ccall "HROOT.h TPaveStats_Draw" c_tpavestats_draw 
+  :: (Ptr RawTPaveStats) -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveStats_FindObject" c_tpavestats_findobject 
+  :: (Ptr RawTPaveStats) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TPaveStats_SaveAs" c_tpavestats_saveas 
+  :: (Ptr RawTPaveStats) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveStats_Write" c_tpavestats_write 
+  :: (Ptr RawTPaveStats) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPaveStats_SetLineColor" c_tpavestats_setlinecolor 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_SetFillColor" c_tpavestats_setfillcolor 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_SetFillStyle" c_tpavestats_setfillstyle 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_delete" c_tpavestats_delete 
+  :: (Ptr RawTPaveStats) -> IO ()
+foreign import ccall "HROOT.h TPaveStats_newTPaveStats" c_tpavestats_newtpavestats 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTPaveStats)
+
+foreign import ccall "HROOT.h TPavesText_SetTextColor" c_tpavestext_settextcolor 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_SetTextAlign" c_tpavestext_settextalign 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_SetTextSize" c_tpavestext_settextsize 
+  :: (Ptr RawTPavesText) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPavesText_GetName" c_tpavestext_getname 
+  :: (Ptr RawTPavesText) -> IO CString
+foreign import ccall "HROOT.h TPavesText_Draw" c_tpavestext_draw 
+  :: (Ptr RawTPavesText) -> CString -> IO ()
+foreign import ccall "HROOT.h TPavesText_FindObject" c_tpavestext_findobject 
+  :: (Ptr RawTPavesText) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TPavesText_SaveAs" c_tpavestext_saveas 
+  :: (Ptr RawTPavesText) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPavesText_Write" c_tpavestext_write 
+  :: (Ptr RawTPavesText) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPavesText_SetLineColor" c_tpavestext_setlinecolor 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_SetFillColor" c_tpavestext_setfillcolor 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_SetFillStyle" c_tpavestext_setfillstyle 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_delete" c_tpavestext_delete 
+  :: (Ptr RawTPavesText) -> IO ()
+foreign import ccall "HROOT.h TPavesText_newTPavesText" c_tpavestext_newtpavestext 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CString -> IO (Ptr RawTPavesText)
+
+foreign import ccall "HROOT.h TLegend_SetTextColor" c_tlegend_settextcolor 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_SetTextAlign" c_tlegend_settextalign 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_SetTextSize" c_tlegend_settextsize 
+  :: (Ptr RawTLegend) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TLegend_GetName" c_tlegend_getname 
+  :: (Ptr RawTLegend) -> IO CString
+foreign import ccall "HROOT.h TLegend_Draw" c_tlegend_draw 
+  :: (Ptr RawTLegend) -> CString -> IO ()
+foreign import ccall "HROOT.h TLegend_FindObject" c_tlegend_findobject 
+  :: (Ptr RawTLegend) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TLegend_SaveAs" c_tlegend_saveas 
+  :: (Ptr RawTLegend) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TLegend_Write" c_tlegend_write 
+  :: (Ptr RawTLegend) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TLegend_SetLineColor" c_tlegend_setlinecolor 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_SetFillColor" c_tlegend_setfillcolor 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_SetFillStyle" c_tlegend_setfillstyle 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_delete" c_tlegend_delete 
+  :: (Ptr RawTLegend) -> IO ()
+foreign import ccall "HROOT.h TLegend_newTLegend" c_tlegend_newtlegend 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> CString -> IO (Ptr RawTLegend)
+
+foreign import ccall "HROOT.h TPaveLabel_SetTextColor" c_tpavelabel_settextcolor 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_SetTextAlign" c_tpavelabel_settextalign 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_SetTextSize" c_tpavelabel_settextsize 
+  :: (Ptr RawTPaveLabel) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_GetName" c_tpavelabel_getname 
+  :: (Ptr RawTPaveLabel) -> IO CString
+foreign import ccall "HROOT.h TPaveLabel_Draw" c_tpavelabel_draw 
+  :: (Ptr RawTPaveLabel) -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_FindObject" c_tpavelabel_findobject 
+  :: (Ptr RawTPaveLabel) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TPaveLabel_SaveAs" c_tpavelabel_saveas 
+  :: (Ptr RawTPaveLabel) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_Write" c_tpavelabel_write 
+  :: (Ptr RawTPaveLabel) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPaveLabel_SetLineColor" c_tpavelabel_setlinecolor 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_SetFillColor" c_tpavelabel_setfillcolor 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_SetFillStyle" c_tpavelabel_setfillstyle 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_delete" c_tpavelabel_delete 
+  :: (Ptr RawTPaveLabel) -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_newTPaveLabel" c_tpavelabel_newtpavelabel 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> CString -> IO (Ptr RawTPaveLabel)
+
+foreign import ccall "HROOT.h TPaveClass_SetTextColor" c_tpaveclass_settextcolor 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveClass_SetTextAlign" c_tpaveclass_settextalign 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveClass_SetTextSize" c_tpaveclass_settextsize 
+  :: (Ptr RawTPaveClass) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPaveClass_GetName" c_tpaveclass_getname 
+  :: (Ptr RawTPaveClass) -> IO CString
+foreign import ccall "HROOT.h TPaveClass_Draw" c_tpaveclass_draw 
+  :: (Ptr RawTPaveClass) -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveClass_FindObject" c_tpaveclass_findobject 
+  :: (Ptr RawTPaveClass) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TPaveClass_SaveAs" c_tpaveclass_saveas 
+  :: (Ptr RawTPaveClass) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveClass_Write" c_tpaveclass_write 
+  :: (Ptr RawTPaveClass) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPaveClass_SetLineColor" c_tpaveclass_setlinecolor 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveClass_SetFillColor" c_tpaveclass_setfillcolor 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveClass_SetFillStyle" c_tpaveclass_setfillstyle 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveClass_delete" c_tpaveclass_delete 
+  :: (Ptr RawTPaveClass) -> IO ()
+
+foreign import ccall "HROOT.h TWbox_GetName" c_twbox_getname 
+  :: (Ptr RawTWbox) -> IO CString
+foreign import ccall "HROOT.h TWbox_Draw" c_twbox_draw 
+  :: (Ptr RawTWbox) -> CString -> IO ()
+foreign import ccall "HROOT.h TWbox_FindObject" c_twbox_findobject 
+  :: (Ptr RawTWbox) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TWbox_SaveAs" c_twbox_saveas 
+  :: (Ptr RawTWbox) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TWbox_Write" c_twbox_write 
+  :: (Ptr RawTWbox) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TWbox_SetLineColor" c_twbox_setlinecolor 
+  :: (Ptr RawTWbox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TWbox_SetFillColor" c_twbox_setfillcolor 
+  :: (Ptr RawTWbox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TWbox_SetFillStyle" c_twbox_setfillstyle 
+  :: (Ptr RawTWbox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TWbox_delete" c_twbox_delete 
+  :: (Ptr RawTWbox) -> IO ()
+foreign import ccall "HROOT.h TWbox_newTWbox" c_twbox_newtwbox 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CInt -> CInt -> IO (Ptr RawTWbox)
+foreign import ccall "HROOT.h TWbox_SetBorderMode" c_twbox_setbordermode 
+  :: (Ptr RawTWbox) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TFrame_SetBorderMode" c_tframe_setbordermode 
+  :: (Ptr RawTFrame) -> CInt -> IO ()
+foreign import ccall "HROOT.h TFrame_GetName" c_tframe_getname 
+  :: (Ptr RawTFrame) -> IO CString
+foreign import ccall "HROOT.h TFrame_Draw" c_tframe_draw 
+  :: (Ptr RawTFrame) -> CString -> IO ()
+foreign import ccall "HROOT.h TFrame_FindObject" c_tframe_findobject 
+  :: (Ptr RawTFrame) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TFrame_SaveAs" c_tframe_saveas 
+  :: (Ptr RawTFrame) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TFrame_Write" c_tframe_write 
+  :: (Ptr RawTFrame) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TFrame_SetLineColor" c_tframe_setlinecolor 
+  :: (Ptr RawTFrame) -> CInt -> IO ()
+foreign import ccall "HROOT.h TFrame_SetFillColor" c_tframe_setfillcolor 
+  :: (Ptr RawTFrame) -> CInt -> IO ()
+foreign import ccall "HROOT.h TFrame_SetFillStyle" c_tframe_setfillstyle 
+  :: (Ptr RawTFrame) -> CInt -> IO ()
+foreign import ccall "HROOT.h TFrame_delete" c_tframe_delete 
+  :: (Ptr RawTFrame) -> IO ()
+foreign import ccall "HROOT.h TFrame_newTFrame" c_tframe_newtframe 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTFrame)
+
+foreign import ccall "HROOT.h TSliderBox_SetBorderMode" c_tsliderbox_setbordermode 
+  :: (Ptr RawTSliderBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSliderBox_GetName" c_tsliderbox_getname 
+  :: (Ptr RawTSliderBox) -> IO CString
+foreign import ccall "HROOT.h TSliderBox_Draw" c_tsliderbox_draw 
+  :: (Ptr RawTSliderBox) -> CString -> IO ()
+foreign import ccall "HROOT.h TSliderBox_FindObject" c_tsliderbox_findobject 
+  :: (Ptr RawTSliderBox) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TSliderBox_SaveAs" c_tsliderbox_saveas 
+  :: (Ptr RawTSliderBox) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TSliderBox_Write" c_tsliderbox_write 
+  :: (Ptr RawTSliderBox) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TSliderBox_SetLineColor" c_tsliderbox_setlinecolor 
+  :: (Ptr RawTSliderBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSliderBox_SetFillColor" c_tsliderbox_setfillcolor 
+  :: (Ptr RawTSliderBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSliderBox_SetFillStyle" c_tsliderbox_setfillstyle 
+  :: (Ptr RawTSliderBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSliderBox_delete" c_tsliderbox_delete 
+  :: (Ptr RawTSliderBox) -> IO ()
+foreign import ccall "HROOT.h TSliderBox_newTSliderBox" c_tsliderbox_newtsliderbox 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CInt -> CInt -> IO (Ptr RawTSliderBox)
+
+foreign import ccall "HROOT.h TTree_SetTitle" c_ttree_settitle 
+  :: (Ptr RawTTree) -> CString -> IO ()
+foreign import ccall "HROOT.h TTree_SetLineColor" c_ttree_setlinecolor 
+  :: (Ptr RawTTree) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTree_SetFillColor" c_ttree_setfillcolor 
+  :: (Ptr RawTTree) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTree_SetFillStyle" c_ttree_setfillstyle 
+  :: (Ptr RawTTree) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTree_GetName" c_ttree_getname 
+  :: (Ptr RawTTree) -> IO CString
+foreign import ccall "HROOT.h TTree_Draw" c_ttree_draw 
+  :: (Ptr RawTTree) -> CString -> IO ()
+foreign import ccall "HROOT.h TTree_FindObject" c_ttree_findobject 
+  :: (Ptr RawTTree) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TTree_SaveAs" c_ttree_saveas 
+  :: (Ptr RawTTree) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TTree_Write" c_ttree_write 
+  :: (Ptr RawTTree) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TTree_delete" c_ttree_delete 
+  :: (Ptr RawTTree) -> IO ()
+foreign import ccall "HROOT.h TTree_newTTree" c_ttree_newttree 
+  :: CString -> CString -> CInt -> IO (Ptr RawTTree)
+
+foreign import ccall "HROOT.h TChain_SetTitle" c_tchain_settitle 
+  :: (Ptr RawTChain) -> CString -> IO ()
+foreign import ccall "HROOT.h TChain_SetLineColor" c_tchain_setlinecolor 
+  :: (Ptr RawTChain) -> CInt -> IO ()
+foreign import ccall "HROOT.h TChain_SetFillColor" c_tchain_setfillcolor 
+  :: (Ptr RawTChain) -> CInt -> IO ()
+foreign import ccall "HROOT.h TChain_SetFillStyle" c_tchain_setfillstyle 
+  :: (Ptr RawTChain) -> CInt -> IO ()
+foreign import ccall "HROOT.h TChain_GetName" c_tchain_getname 
+  :: (Ptr RawTChain) -> IO CString
+foreign import ccall "HROOT.h TChain_Draw" c_tchain_draw 
+  :: (Ptr RawTChain) -> CString -> IO ()
+foreign import ccall "HROOT.h TChain_FindObject" c_tchain_findobject 
+  :: (Ptr RawTChain) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TChain_SaveAs" c_tchain_saveas 
+  :: (Ptr RawTChain) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TChain_Write" c_tchain_write 
+  :: (Ptr RawTChain) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TChain_delete" c_tchain_delete 
+  :: (Ptr RawTChain) -> IO ()
+foreign import ccall "HROOT.h TChain_newTChain" c_tchain_newtchain 
+  :: CString -> CString -> IO (Ptr RawTChain)
+
+foreign import ccall "HROOT.h TNtuple_SetTitle" c_tntuple_settitle 
+  :: (Ptr RawTNtuple) -> CString -> IO ()
+foreign import ccall "HROOT.h TNtuple_SetLineColor" c_tntuple_setlinecolor 
+  :: (Ptr RawTNtuple) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtuple_SetFillColor" c_tntuple_setfillcolor 
+  :: (Ptr RawTNtuple) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtuple_SetFillStyle" c_tntuple_setfillstyle 
+  :: (Ptr RawTNtuple) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtuple_GetName" c_tntuple_getname 
+  :: (Ptr RawTNtuple) -> IO CString
+foreign import ccall "HROOT.h TNtuple_Draw" c_tntuple_draw 
+  :: (Ptr RawTNtuple) -> CString -> IO ()
+foreign import ccall "HROOT.h TNtuple_FindObject" c_tntuple_findobject 
+  :: (Ptr RawTNtuple) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TNtuple_SaveAs" c_tntuple_saveas 
+  :: (Ptr RawTNtuple) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TNtuple_Write" c_tntuple_write 
+  :: (Ptr RawTNtuple) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TNtuple_delete" c_tntuple_delete 
+  :: (Ptr RawTNtuple) -> IO ()
+foreign import ccall "HROOT.h TNtuple_newTNtuple" c_tntuple_newtntuple 
+  :: CString -> CString -> CString -> CInt -> IO (Ptr RawTNtuple)
+
+foreign import ccall "HROOT.h TNtupleD_SetTitle" c_tntupled_settitle 
+  :: (Ptr RawTNtupleD) -> CString -> IO ()
+foreign import ccall "HROOT.h TNtupleD_SetLineColor" c_tntupled_setlinecolor 
+  :: (Ptr RawTNtupleD) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtupleD_SetFillColor" c_tntupled_setfillcolor 
+  :: (Ptr RawTNtupleD) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtupleD_SetFillStyle" c_tntupled_setfillstyle 
+  :: (Ptr RawTNtupleD) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtupleD_GetName" c_tntupled_getname 
+  :: (Ptr RawTNtupleD) -> IO CString
+foreign import ccall "HROOT.h TNtupleD_Draw" c_tntupled_draw 
+  :: (Ptr RawTNtupleD) -> CString -> IO ()
+foreign import ccall "HROOT.h TNtupleD_FindObject" c_tntupled_findobject 
+  :: (Ptr RawTNtupleD) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TNtupleD_SaveAs" c_tntupled_saveas 
+  :: (Ptr RawTNtupleD) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TNtupleD_Write" c_tntupled_write 
+  :: (Ptr RawTNtupleD) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TNtupleD_delete" c_tntupled_delete 
+  :: (Ptr RawTNtupleD) -> IO ()
+foreign import ccall "HROOT.h TNtupleD_newTNtupleD" c_tntupled_newtntupled 
+  :: CString -> CString -> CString -> CInt -> IO (Ptr RawTNtupleD)
+
+foreign import ccall "HROOT.h TTreeSQL_SetTitle" c_ttreesql_settitle 
+  :: (Ptr RawTTreeSQL) -> CString -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_SetLineColor" c_ttreesql_setlinecolor 
+  :: (Ptr RawTTreeSQL) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_SetFillColor" c_ttreesql_setfillcolor 
+  :: (Ptr RawTTreeSQL) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_SetFillStyle" c_ttreesql_setfillstyle 
+  :: (Ptr RawTTreeSQL) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_GetName" c_ttreesql_getname 
+  :: (Ptr RawTTreeSQL) -> IO CString
+foreign import ccall "HROOT.h TTreeSQL_Draw" c_ttreesql_draw 
+  :: (Ptr RawTTreeSQL) -> CString -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_FindObject" c_ttreesql_findobject 
+  :: (Ptr RawTTreeSQL) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TTreeSQL_SaveAs" c_ttreesql_saveas 
+  :: (Ptr RawTTreeSQL) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_Write" c_ttreesql_write 
+  :: (Ptr RawTTreeSQL) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TTreeSQL_delete" c_ttreesql_delete 
+  :: (Ptr RawTTreeSQL) -> IO ()
+
+foreign import ccall "HROOT.h TPolyLine_GetName" c_tpolyline_getname 
+  :: (Ptr RawTPolyLine) -> IO CString
+foreign import ccall "HROOT.h TPolyLine_Draw" c_tpolyline_draw 
+  :: (Ptr RawTPolyLine) -> CString -> IO ()
+foreign import ccall "HROOT.h TPolyLine_FindObject" c_tpolyline_findobject 
+  :: (Ptr RawTPolyLine) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TPolyLine_SaveAs" c_tpolyline_saveas 
+  :: (Ptr RawTPolyLine) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPolyLine_Write" c_tpolyline_write 
+  :: (Ptr RawTPolyLine) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPolyLine_SetLineColor" c_tpolyline_setlinecolor 
+  :: (Ptr RawTPolyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPolyLine_SetFillColor" c_tpolyline_setfillcolor 
+  :: (Ptr RawTPolyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPolyLine_SetFillStyle" c_tpolyline_setfillstyle 
+  :: (Ptr RawTPolyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPolyLine_delete" c_tpolyline_delete 
+  :: (Ptr RawTPolyLine) -> IO ()
+foreign import ccall "HROOT.h TPolyLine_newTPolyLine" c_tpolyline_newtpolyline 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO (Ptr RawTPolyLine)
+
+foreign import ccall "HROOT.h TCurlyLine_GetName" c_tcurlyline_getname 
+  :: (Ptr RawTCurlyLine) -> IO CString
+foreign import ccall "HROOT.h TCurlyLine_Draw" c_tcurlyline_draw 
+  :: (Ptr RawTCurlyLine) -> CString -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_FindObject" c_tcurlyline_findobject 
+  :: (Ptr RawTCurlyLine) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TCurlyLine_SaveAs" c_tcurlyline_saveas 
+  :: (Ptr RawTCurlyLine) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_Write" c_tcurlyline_write 
+  :: (Ptr RawTCurlyLine) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCurlyLine_SetLineColor" c_tcurlyline_setlinecolor 
+  :: (Ptr RawTCurlyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_SetFillColor" c_tcurlyline_setfillcolor 
+  :: (Ptr RawTCurlyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_SetFillStyle" c_tcurlyline_setfillstyle 
+  :: (Ptr RawTCurlyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_delete" c_tcurlyline_delete 
+  :: (Ptr RawTCurlyLine) -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_newTCurlyLine" c_tcurlyline_newtcurlyline 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTCurlyLine)
+
+foreign import ccall "HROOT.h TCurlyArc_GetName" c_tcurlyarc_getname 
+  :: (Ptr RawTCurlyArc) -> IO CString
+foreign import ccall "HROOT.h TCurlyArc_Draw" c_tcurlyarc_draw 
+  :: (Ptr RawTCurlyArc) -> CString -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_FindObject" c_tcurlyarc_findobject 
+  :: (Ptr RawTCurlyArc) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TCurlyArc_SaveAs" c_tcurlyarc_saveas 
+  :: (Ptr RawTCurlyArc) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_Write" c_tcurlyarc_write 
+  :: (Ptr RawTCurlyArc) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCurlyArc_SetLineColor" c_tcurlyarc_setlinecolor 
+  :: (Ptr RawTCurlyArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_SetFillColor" c_tcurlyarc_setfillcolor 
+  :: (Ptr RawTCurlyArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_SetFillStyle" c_tcurlyarc_setfillstyle 
+  :: (Ptr RawTCurlyArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_delete" c_tcurlyarc_delete 
+  :: (Ptr RawTCurlyArc) -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_newTCurlyArc" c_tcurlyarc_newtcurlyarc 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTCurlyArc)
+
+foreign import ccall "HROOT.h TEfficiency_SetTitle" c_tefficiency_settitle 
+  :: (Ptr RawTEfficiency) -> CString -> IO ()
+foreign import ccall "HROOT.h TEfficiency_SetLineColor" c_tefficiency_setlinecolor 
+  :: (Ptr RawTEfficiency) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEfficiency_SetFillColor" c_tefficiency_setfillcolor 
+  :: (Ptr RawTEfficiency) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEfficiency_SetFillStyle" c_tefficiency_setfillstyle 
+  :: (Ptr RawTEfficiency) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEfficiency_GetName" c_tefficiency_getname 
+  :: (Ptr RawTEfficiency) -> IO CString
+foreign import ccall "HROOT.h TEfficiency_Draw" c_tefficiency_draw 
+  :: (Ptr RawTEfficiency) -> CString -> IO ()
+foreign import ccall "HROOT.h TEfficiency_FindObject" c_tefficiency_findobject 
+  :: (Ptr RawTEfficiency) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TEfficiency_SaveAs" c_tefficiency_saveas 
+  :: (Ptr RawTEfficiency) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TEfficiency_Write" c_tefficiency_write 
+  :: (Ptr RawTEfficiency) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TEfficiency_delete" c_tefficiency_delete 
+  :: (Ptr RawTEfficiency) -> IO ()
+
+foreign import ccall "HROOT.h TAxis_SetTitle" c_taxis_settitle 
+  :: (Ptr RawTAxis) -> CString -> IO ()
+foreign import ccall "HROOT.h TAxis_SetLabelColor" c_taxis_setlabelcolor 
+  :: (Ptr RawTAxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAxis_SetLabelSize" c_taxis_setlabelsize 
+  :: (Ptr RawTAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAxis_SetTickLength" c_taxis_setticklength 
+  :: (Ptr RawTAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAxis_SetTitleOffset" c_taxis_settitleoffset 
+  :: (Ptr RawTAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAxis_SetNdivisions" c_taxis_setndivisions 
+  :: (Ptr RawTAxis) -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TAxis_GetName" c_taxis_getname 
+  :: (Ptr RawTAxis) -> IO CString
+foreign import ccall "HROOT.h TAxis_Draw" c_taxis_draw 
+  :: (Ptr RawTAxis) -> CString -> IO ()
+foreign import ccall "HROOT.h TAxis_FindObject" c_taxis_findobject 
+  :: (Ptr RawTAxis) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TAxis_SaveAs" c_taxis_saveas 
+  :: (Ptr RawTAxis) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TAxis_Write" c_taxis_write 
+  :: (Ptr RawTAxis) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TAxis_delete" c_taxis_delete 
+  :: (Ptr RawTAxis) -> IO ()
+foreign import ccall "HROOT.h TAxis_newTAxis" c_taxis_newtaxis 
+  :: CInt -> CDouble -> CDouble -> IO (Ptr RawTAxis)
+
+foreign import ccall "HROOT.h TLatex_SetLineColor" c_tlatex_setlinecolor 
+  :: (Ptr RawTLatex) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLatex_SetTitle" c_tlatex_settitle 
+  :: (Ptr RawTLatex) -> CString -> IO ()
+foreign import ccall "HROOT.h TLatex_SetTextColor" c_tlatex_settextcolor 
+  :: (Ptr RawTLatex) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLatex_SetTextAlign" c_tlatex_settextalign 
+  :: (Ptr RawTLatex) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLatex_SetTextSize" c_tlatex_settextsize 
+  :: (Ptr RawTLatex) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TLatex_GetName" c_tlatex_getname 
+  :: (Ptr RawTLatex) -> IO CString
+foreign import ccall "HROOT.h TLatex_Draw" c_tlatex_draw 
+  :: (Ptr RawTLatex) -> CString -> IO ()
+foreign import ccall "HROOT.h TLatex_FindObject" c_tlatex_findobject 
+  :: (Ptr RawTLatex) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TLatex_SaveAs" c_tlatex_saveas 
+  :: (Ptr RawTLatex) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TLatex_Write" c_tlatex_write 
+  :: (Ptr RawTLatex) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TLatex_delete" c_tlatex_delete 
+  :: (Ptr RawTLatex) -> IO ()
+foreign import ccall "HROOT.h TLatex_newTLatex" c_tlatex_newtlatex 
+  :: CDouble -> CDouble -> CString -> IO (Ptr RawTLatex)
+foreign import ccall "HROOT.h TLatex_tLatexDrawLatex" c_tlatex_tlatexdrawlatex 
+  :: (Ptr RawTLatex) -> CDouble -> CDouble -> CString -> IO (Ptr RawTLatex)
+
+foreign import ccall "HROOT.h TText_SetTitle" c_ttext_settitle 
+  :: (Ptr RawTText) -> CString -> IO ()
+foreign import ccall "HROOT.h TText_SetTextColor" c_ttext_settextcolor 
+  :: (Ptr RawTText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TText_SetTextAlign" c_ttext_settextalign 
+  :: (Ptr RawTText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TText_SetTextSize" c_ttext_settextsize 
+  :: (Ptr RawTText) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TText_GetName" c_ttext_getname 
+  :: (Ptr RawTText) -> IO CString
+foreign import ccall "HROOT.h TText_Draw" c_ttext_draw 
+  :: (Ptr RawTText) -> CString -> IO ()
+foreign import ccall "HROOT.h TText_FindObject" c_ttext_findobject 
+  :: (Ptr RawTText) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TText_SaveAs" c_ttext_saveas 
+  :: (Ptr RawTText) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TText_Write" c_ttext_write 
+  :: (Ptr RawTText) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TText_delete" c_ttext_delete 
+  :: (Ptr RawTText) -> IO ()
+
+foreign import ccall "HROOT.h TDirectory_SetTitle" c_tdirectory_settitle 
+  :: (Ptr RawTDirectory) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectory_GetName" c_tdirectory_getname 
+  :: (Ptr RawTDirectory) -> IO CString
+foreign import ccall "HROOT.h TDirectory_Draw" c_tdirectory_draw 
+  :: (Ptr RawTDirectory) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectory_FindObject" c_tdirectory_findobject 
+  :: (Ptr RawTDirectory) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TDirectory_SaveAs" c_tdirectory_saveas 
+  :: (Ptr RawTDirectory) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectory_Write" c_tdirectory_write 
+  :: (Ptr RawTDirectory) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TDirectory_delete" c_tdirectory_delete 
+  :: (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TDirectory_Close" c_tdirectory_close 
+  :: (Ptr RawTDirectory) -> CString -> IO ()
+
+foreign import ccall "HROOT.h TDirectoryFile_Close" c_tdirectoryfile_close 
+  :: (Ptr RawTDirectoryFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectoryFile_SetTitle" c_tdirectoryfile_settitle 
+  :: (Ptr RawTDirectoryFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectoryFile_GetName" c_tdirectoryfile_getname 
+  :: (Ptr RawTDirectoryFile) -> IO CString
+foreign import ccall "HROOT.h TDirectoryFile_Draw" c_tdirectoryfile_draw 
+  :: (Ptr RawTDirectoryFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectoryFile_FindObject" c_tdirectoryfile_findobject 
+  :: (Ptr RawTDirectoryFile) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TDirectoryFile_SaveAs" c_tdirectoryfile_saveas 
+  :: (Ptr RawTDirectoryFile) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectoryFile_Write" c_tdirectoryfile_write 
+  :: (Ptr RawTDirectoryFile) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TDirectoryFile_delete" c_tdirectoryfile_delete 
+  :: (Ptr RawTDirectoryFile) -> IO ()
+
+foreign import ccall "HROOT.h TFile_Close" c_tfile_close 
+  :: (Ptr RawTFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TFile_SetTitle" c_tfile_settitle 
+  :: (Ptr RawTFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TFile_GetName" c_tfile_getname 
+  :: (Ptr RawTFile) -> IO CString
+foreign import ccall "HROOT.h TFile_Draw" c_tfile_draw 
+  :: (Ptr RawTFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TFile_FindObject" c_tfile_findobject 
+  :: (Ptr RawTFile) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TFile_SaveAs" c_tfile_saveas 
+  :: (Ptr RawTFile) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TFile_Write" c_tfile_write 
+  :: (Ptr RawTFile) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TFile_delete" c_tfile_delete 
+  :: (Ptr RawTFile) -> IO ()
+foreign import ccall "HROOT.h TFile_newTFile" c_tfile_newtfile 
+  :: CString -> CString -> CString -> CInt -> IO (Ptr RawTFile)
+
+foreign import ccall "HROOT.h TBranch_SetTitle" c_tbranch_settitle 
+  :: (Ptr RawTBranch) -> CString -> IO ()
+foreign import ccall "HROOT.h TBranch_SetFillColor" c_tbranch_setfillcolor 
+  :: (Ptr RawTBranch) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBranch_SetFillStyle" c_tbranch_setfillstyle 
+  :: (Ptr RawTBranch) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBranch_GetName" c_tbranch_getname 
+  :: (Ptr RawTBranch) -> IO CString
+foreign import ccall "HROOT.h TBranch_Draw" c_tbranch_draw 
+  :: (Ptr RawTBranch) -> CString -> IO ()
+foreign import ccall "HROOT.h TBranch_FindObject" c_tbranch_findobject 
+  :: (Ptr RawTBranch) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TBranch_SaveAs" c_tbranch_saveas 
+  :: (Ptr RawTBranch) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TBranch_Write" c_tbranch_write 
+  :: (Ptr RawTBranch) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TBranch_delete" c_tbranch_delete 
+  :: (Ptr RawTBranch) -> IO ()
+
+foreign import ccall "HROOT.h TVirtualTreePlayer_GetName" c_tvirtualtreeplayer_getname 
+  :: (Ptr RawTVirtualTreePlayer) -> IO CString
+foreign import ccall "HROOT.h TVirtualTreePlayer_Draw" c_tvirtualtreeplayer_draw 
+  :: (Ptr RawTVirtualTreePlayer) -> CString -> IO ()
+foreign import ccall "HROOT.h TVirtualTreePlayer_FindObject" c_tvirtualtreeplayer_findobject 
+  :: (Ptr RawTVirtualTreePlayer) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TVirtualTreePlayer_SaveAs" c_tvirtualtreeplayer_saveas 
+  :: (Ptr RawTVirtualTreePlayer) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TVirtualTreePlayer_Write" c_tvirtualtreeplayer_write 
+  :: (Ptr RawTVirtualTreePlayer) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TVirtualTreePlayer_delete" c_tvirtualtreeplayer_delete 
+  :: (Ptr RawTVirtualTreePlayer) -> IO ()
+
+foreign import ccall "HROOT.h TTreePlayer_GetName" c_ttreeplayer_getname 
+  :: (Ptr RawTTreePlayer) -> IO CString
+foreign import ccall "HROOT.h TTreePlayer_Draw" c_ttreeplayer_draw 
+  :: (Ptr RawTTreePlayer) -> CString -> IO ()
+foreign import ccall "HROOT.h TTreePlayer_FindObject" c_ttreeplayer_findobject 
+  :: (Ptr RawTTreePlayer) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TTreePlayer_SaveAs" c_ttreeplayer_saveas 
+  :: (Ptr RawTTreePlayer) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TTreePlayer_Write" c_ttreeplayer_write 
+  :: (Ptr RawTTreePlayer) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TTreePlayer_delete" c_ttreeplayer_delete 
+  :: (Ptr RawTTreePlayer) -> IO ()
+
+foreign import ccall "HROOT.h TArray_delete" c_tarray_delete 
+  :: (Ptr RawTArray) -> IO ()
+
+foreign import ccall "HROOT.h TArrayC_delete" c_tarrayc_delete 
+  :: (Ptr RawTArrayC) -> IO ()
+
+foreign import ccall "HROOT.h TArrayD_delete" c_tarrayd_delete 
+  :: (Ptr RawTArrayD) -> IO ()
+
+foreign import ccall "HROOT.h TArrayF_delete" c_tarrayf_delete 
+  :: (Ptr RawTArrayF) -> IO ()
+
+foreign import ccall "HROOT.h TArrayI_delete" c_tarrayi_delete 
+  :: (Ptr RawTArrayI) -> IO ()
+
+foreign import ccall "HROOT.h TArrayL_delete" c_tarrayl_delete 
+  :: (Ptr RawTArrayL) -> IO ()
+
+foreign import ccall "HROOT.h TArrayL64_delete" c_tarrayl64_delete 
+  :: (Ptr RawTArrayL64) -> IO ()
+
+foreign import ccall "HROOT.h TArrayS_delete" c_tarrays_delete 
+  :: (Ptr RawTArrayS) -> IO ()
+
+foreign import ccall "HROOT.h TH1_SetTitle" c_th1_settitle 
+  :: (Ptr RawTH1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1_SetLineColor" c_th1_setlinecolor 
+  :: (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1_SetFillColor" c_th1_setfillcolor 
+  :: (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1_SetFillStyle" c_th1_setfillstyle 
+  :: (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1_GetName" c_th1_getname 
+  :: (Ptr RawTH1) -> IO CString
+foreign import ccall "HROOT.h TH1_Draw" c_th1_draw 
+  :: (Ptr RawTH1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1_FindObject" c_th1_findobject 
+  :: (Ptr RawTH1) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH1_SaveAs" c_th1_saveas 
+  :: (Ptr RawTH1) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1_Write" c_th1_write 
+  :: (Ptr RawTH1) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1_delete" c_th1_delete 
+  :: (Ptr RawTH1) -> IO ()
+foreign import ccall "HROOT.h TH1_Add" c_th1_add 
+  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1_AddBinContent" c_th1_addbincontent 
+  :: (Ptr RawTH1) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1_Chi2Test" c_th1_chi2test 
+  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH1_ComputeIntegral" c_th1_computeintegral 
+  :: (Ptr RawTH1) -> IO CDouble
+foreign import ccall "HROOT.h TH1_DirectoryAutoAdd" c_th1_directoryautoadd 
+  :: (Ptr RawTH1) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH1_DistancetoPrimitive" c_th1_distancetoprimitive 
+  :: (Ptr RawTH1) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1_Divide" c_th1_divide 
+  :: (Ptr RawTH1) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH1_DrawCopy" c_th1_drawcopy 
+  :: (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1_DrawNormalized" c_th1_drawnormalized 
+  :: (Ptr RawTH1) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1_DrawPanel" c_th1_drawpanel 
+  :: (Ptr RawTH1) -> IO ()
+foreign import ccall "HROOT.h TH1_BufferEmpty" c_th1_bufferempty 
+  :: (Ptr RawTH1) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1_Eval" c_th1_eval 
+  :: (Ptr RawTH1) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1_ExecuteEvent" c_th1_executeevent 
+  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1_FFT" c_th1_fft 
+  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1_fill1" c_th1_fill1 
+  :: (Ptr RawTH1) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1_FillN" c_th1_filln 
+  :: (Ptr RawTH1) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1_FillRandom" c_th1_fillrandom 
+  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1_FindBin" c_th1_findbin 
+  :: (Ptr RawTH1) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1_FindFixBin" c_th1_findfixbin 
+  :: (Ptr RawTH1) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1_FindFirstBinAbove" c_th1_findfirstbinabove 
+  :: (Ptr RawTH1) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1_FindLastBinAbove" c_th1_findlastbinabove 
+  :: (Ptr RawTH1) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1_FitPanel" c_th1_fitpanel 
+  :: (Ptr RawTH1) -> IO ()
+foreign import ccall "HROOT.h TH1_tH1GetAsymmetry" c_th1_th1getasymmetry 
+  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1_tH1GetBufferLength" c_th1_th1getbufferlength 
+  :: (Ptr RawTH1) -> IO CInt
+foreign import ccall "HROOT.h TH1_tH1GetBufferSize" c_th1_th1getbuffersize 
+  :: (Ptr RawTH1) -> IO CInt
+foreign import ccall "HROOT.h TH1_GetNdivisions" c_th1_getndivisions 
+  :: (Ptr RawTH1) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1_GetAxisColor" c_th1_getaxiscolor 
+  :: (Ptr RawTH1) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1_GetLabelColor" c_th1_getlabelcolor 
+  :: (Ptr RawTH1) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1_GetLabelFont" c_th1_getlabelfont 
+  :: (Ptr RawTH1) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1_GetLabelOffset" c_th1_getlabeloffset 
+  :: (Ptr RawTH1) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetLabelSize" c_th1_getlabelsize 
+  :: (Ptr RawTH1) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetTitleFont" c_th1_gettitlefont 
+  :: (Ptr RawTH1) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1_GetTitleOffset" c_th1_gettitleoffset 
+  :: (Ptr RawTH1) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetTitleSize" c_th1_gettitlesize 
+  :: (Ptr RawTH1) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetTickLength" c_th1_getticklength 
+  :: (Ptr RawTH1) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBarOffset" c_th1_getbaroffset 
+  :: (Ptr RawTH1) -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBarWidth" c_th1_getbarwidth 
+  :: (Ptr RawTH1) -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetContour" c_th1_getcontour 
+  :: (Ptr RawTH1) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH1_GetContourLevel" c_th1_getcontourlevel 
+  :: (Ptr RawTH1) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetContourLevelPad" c_th1_getcontourlevelpad 
+  :: (Ptr RawTH1) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBin" c_th1_getbin 
+  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1_GetBinCenter" c_th1_getbincenter 
+  :: (Ptr RawTH1) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBinContent1" c_th1_getbincontent1 
+  :: (Ptr RawTH1) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBinContent2" c_th1_getbincontent2 
+  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBinContent3" c_th1_getbincontent3 
+  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBinError1" c_th1_getbinerror1 
+  :: (Ptr RawTH1) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBinError2" c_th1_getbinerror2 
+  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBinError3" c_th1_getbinerror3 
+  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBinLowEdge" c_th1_getbinlowedge 
+  :: (Ptr RawTH1) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetBinWidth" c_th1_getbinwidth 
+  :: (Ptr RawTH1) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetCellContent" c_th1_getcellcontent 
+  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_GetCellError" c_th1_getcellerror 
+  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1_tH1GetDirectory" c_th1_th1getdirectory 
+  :: (Ptr RawTH1) -> IO (Ptr RawTDirectory)
+foreign import ccall "HROOT.h TH1_tH1GetXaxis" c_th1_th1getxaxis 
+  :: (Ptr RawTH1) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1_tH1GetYaxis" c_th1_th1getyaxis 
+  :: (Ptr RawTH1) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1_tH1GetZaxis" c_th1_th1getzaxis 
+  :: (Ptr RawTH1) -> IO (Ptr RawTAxis)
+
+foreign import ccall "HROOT.h TH2_Add" c_th2_add 
+  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2_AddBinContent" c_th2_addbincontent 
+  :: (Ptr RawTH2) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2_Chi2Test" c_th2_chi2test 
+  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH2_ComputeIntegral" c_th2_computeintegral 
+  :: (Ptr RawTH2) -> IO CDouble
+foreign import ccall "HROOT.h TH2_DirectoryAutoAdd" c_th2_directoryautoadd 
+  :: (Ptr RawTH2) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH2_DistancetoPrimitive" c_th2_distancetoprimitive 
+  :: (Ptr RawTH2) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2_Divide" c_th2_divide 
+  :: (Ptr RawTH2) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH2_DrawCopy" c_th2_drawcopy 
+  :: (Ptr RawTH2) -> CString -> IO (Ptr RawTH2)
+foreign import ccall "HROOT.h TH2_DrawNormalized" c_th2_drawnormalized 
+  :: (Ptr RawTH2) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2_DrawPanel" c_th2_drawpanel 
+  :: (Ptr RawTH2) -> IO ()
+foreign import ccall "HROOT.h TH2_BufferEmpty" c_th2_bufferempty 
+  :: (Ptr RawTH2) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2_Eval" c_th2_eval 
+  :: (Ptr RawTH2) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2_ExecuteEvent" c_th2_executeevent 
+  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2_FFT" c_th2_fft 
+  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2_fill1" c_th2_fill1 
+  :: (Ptr RawTH2) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2_FillN" c_th2_filln 
+  :: (Ptr RawTH2) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2_FillRandom" c_th2_fillrandom 
+  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2_FindBin" c_th2_findbin 
+  :: (Ptr RawTH2) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2_FindFixBin" c_th2_findfixbin 
+  :: (Ptr RawTH2) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2_FindFirstBinAbove" c_th2_findfirstbinabove 
+  :: (Ptr RawTH2) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2_FindLastBinAbove" c_th2_findlastbinabove 
+  :: (Ptr RawTH2) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2_FitPanel" c_th2_fitpanel 
+  :: (Ptr RawTH2) -> IO ()
+foreign import ccall "HROOT.h TH2_GetNdivisions" c_th2_getndivisions 
+  :: (Ptr RawTH2) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2_GetAxisColor" c_th2_getaxiscolor 
+  :: (Ptr RawTH2) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2_GetLabelColor" c_th2_getlabelcolor 
+  :: (Ptr RawTH2) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2_GetLabelFont" c_th2_getlabelfont 
+  :: (Ptr RawTH2) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2_GetLabelOffset" c_th2_getlabeloffset 
+  :: (Ptr RawTH2) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetLabelSize" c_th2_getlabelsize 
+  :: (Ptr RawTH2) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetTitleFont" c_th2_gettitlefont 
+  :: (Ptr RawTH2) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2_GetTitleOffset" c_th2_gettitleoffset 
+  :: (Ptr RawTH2) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetTitleSize" c_th2_gettitlesize 
+  :: (Ptr RawTH2) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetTickLength" c_th2_getticklength 
+  :: (Ptr RawTH2) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBarOffset" c_th2_getbaroffset 
+  :: (Ptr RawTH2) -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBarWidth" c_th2_getbarwidth 
+  :: (Ptr RawTH2) -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetContour" c_th2_getcontour 
+  :: (Ptr RawTH2) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH2_GetContourLevel" c_th2_getcontourlevel 
+  :: (Ptr RawTH2) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetContourLevelPad" c_th2_getcontourlevelpad 
+  :: (Ptr RawTH2) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBin" c_th2_getbin 
+  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2_GetBinCenter" c_th2_getbincenter 
+  :: (Ptr RawTH2) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBinContent1" c_th2_getbincontent1 
+  :: (Ptr RawTH2) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBinContent2" c_th2_getbincontent2 
+  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBinContent3" c_th2_getbincontent3 
+  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBinError1" c_th2_getbinerror1 
+  :: (Ptr RawTH2) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBinError2" c_th2_getbinerror2 
+  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBinError3" c_th2_getbinerror3 
+  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBinLowEdge" c_th2_getbinlowedge 
+  :: (Ptr RawTH2) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetBinWidth" c_th2_getbinwidth 
+  :: (Ptr RawTH2) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetCellContent" c_th2_getcellcontent 
+  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_GetCellError" c_th2_getcellerror 
+  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2_SetTitle" c_th2_settitle 
+  :: (Ptr RawTH2) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2_SetLineColor" c_th2_setlinecolor 
+  :: (Ptr RawTH2) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2_SetFillColor" c_th2_setfillcolor 
+  :: (Ptr RawTH2) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2_SetFillStyle" c_th2_setfillstyle 
+  :: (Ptr RawTH2) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2_GetName" c_th2_getname 
+  :: (Ptr RawTH2) -> IO CString
+foreign import ccall "HROOT.h TH2_Draw" c_th2_draw 
+  :: (Ptr RawTH2) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2_FindObject" c_th2_findobject 
+  :: (Ptr RawTH2) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH2_SaveAs" c_th2_saveas 
+  :: (Ptr RawTH2) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2_Write" c_th2_write 
+  :: (Ptr RawTH2) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2_delete" c_th2_delete 
+  :: (Ptr RawTH2) -> IO ()
+foreign import ccall "HROOT.h TH2_fill2" c_th2_fill2 
+  :: (Ptr RawTH2) -> CDouble -> CDouble -> IO CInt
+
+foreign import ccall "HROOT.h TH3_Add" c_th3_add 
+  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3_AddBinContent" c_th3_addbincontent 
+  :: (Ptr RawTH3) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3_Chi2Test" c_th3_chi2test 
+  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH3_ComputeIntegral" c_th3_computeintegral 
+  :: (Ptr RawTH3) -> IO CDouble
+foreign import ccall "HROOT.h TH3_DirectoryAutoAdd" c_th3_directoryautoadd 
+  :: (Ptr RawTH3) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH3_DistancetoPrimitive" c_th3_distancetoprimitive 
+  :: (Ptr RawTH3) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3_Divide" c_th3_divide 
+  :: (Ptr RawTH3) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH3_DrawCopy" c_th3_drawcopy 
+  :: (Ptr RawTH3) -> CString -> IO (Ptr RawTH3)
+foreign import ccall "HROOT.h TH3_DrawNormalized" c_th3_drawnormalized 
+  :: (Ptr RawTH3) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3_DrawPanel" c_th3_drawpanel 
+  :: (Ptr RawTH3) -> IO ()
+foreign import ccall "HROOT.h TH3_BufferEmpty" c_th3_bufferempty 
+  :: (Ptr RawTH3) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3_Eval" c_th3_eval 
+  :: (Ptr RawTH3) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3_ExecuteEvent" c_th3_executeevent 
+  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3_FFT" c_th3_fft 
+  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3_fill1" c_th3_fill1 
+  :: (Ptr RawTH3) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3_FillN" c_th3_filln 
+  :: (Ptr RawTH3) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3_FillRandom" c_th3_fillrandom 
+  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3_FindBin" c_th3_findbin 
+  :: (Ptr RawTH3) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3_FindFixBin" c_th3_findfixbin 
+  :: (Ptr RawTH3) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3_FindFirstBinAbove" c_th3_findfirstbinabove 
+  :: (Ptr RawTH3) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3_FindLastBinAbove" c_th3_findlastbinabove 
+  :: (Ptr RawTH3) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3_FitPanel" c_th3_fitpanel 
+  :: (Ptr RawTH3) -> IO ()
+foreign import ccall "HROOT.h TH3_GetNdivisions" c_th3_getndivisions 
+  :: (Ptr RawTH3) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3_GetAxisColor" c_th3_getaxiscolor 
+  :: (Ptr RawTH3) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3_GetLabelColor" c_th3_getlabelcolor 
+  :: (Ptr RawTH3) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3_GetLabelFont" c_th3_getlabelfont 
+  :: (Ptr RawTH3) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3_GetLabelOffset" c_th3_getlabeloffset 
+  :: (Ptr RawTH3) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetLabelSize" c_th3_getlabelsize 
+  :: (Ptr RawTH3) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetTitleFont" c_th3_gettitlefont 
+  :: (Ptr RawTH3) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3_GetTitleOffset" c_th3_gettitleoffset 
+  :: (Ptr RawTH3) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetTitleSize" c_th3_gettitlesize 
+  :: (Ptr RawTH3) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetTickLength" c_th3_getticklength 
+  :: (Ptr RawTH3) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBarOffset" c_th3_getbaroffset 
+  :: (Ptr RawTH3) -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBarWidth" c_th3_getbarwidth 
+  :: (Ptr RawTH3) -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetContour" c_th3_getcontour 
+  :: (Ptr RawTH3) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH3_GetContourLevel" c_th3_getcontourlevel 
+  :: (Ptr RawTH3) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetContourLevelPad" c_th3_getcontourlevelpad 
+  :: (Ptr RawTH3) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBin" c_th3_getbin 
+  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3_GetBinCenter" c_th3_getbincenter 
+  :: (Ptr RawTH3) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBinContent1" c_th3_getbincontent1 
+  :: (Ptr RawTH3) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBinContent2" c_th3_getbincontent2 
+  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBinContent3" c_th3_getbincontent3 
+  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBinError1" c_th3_getbinerror1 
+  :: (Ptr RawTH3) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBinError2" c_th3_getbinerror2 
+  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBinError3" c_th3_getbinerror3 
+  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBinLowEdge" c_th3_getbinlowedge 
+  :: (Ptr RawTH3) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetBinWidth" c_th3_getbinwidth 
+  :: (Ptr RawTH3) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetCellContent" c_th3_getcellcontent 
+  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_GetCellError" c_th3_getcellerror 
+  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3_SetTitle" c_th3_settitle 
+  :: (Ptr RawTH3) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3_SetLineColor" c_th3_setlinecolor 
+  :: (Ptr RawTH3) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3_SetFillColor" c_th3_setfillcolor 
+  :: (Ptr RawTH3) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3_SetFillStyle" c_th3_setfillstyle 
+  :: (Ptr RawTH3) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3_GetName" c_th3_getname 
+  :: (Ptr RawTH3) -> IO CString
+foreign import ccall "HROOT.h TH3_Draw" c_th3_draw 
+  :: (Ptr RawTH3) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3_FindObject" c_th3_findobject 
+  :: (Ptr RawTH3) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH3_SaveAs" c_th3_saveas 
+  :: (Ptr RawTH3) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3_Write" c_th3_write 
+  :: (Ptr RawTH3) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3_delete" c_th3_delete 
+  :: (Ptr RawTH3) -> IO ()
+
+foreign import ccall "HROOT.h TH1C_Add" c_th1c_add 
+  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1C_AddBinContent" c_th1c_addbincontent 
+  :: (Ptr RawTH1C) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1C_Chi2Test" c_th1c_chi2test 
+  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH1C_ComputeIntegral" c_th1c_computeintegral 
+  :: (Ptr RawTH1C) -> IO CDouble
+foreign import ccall "HROOT.h TH1C_DirectoryAutoAdd" c_th1c_directoryautoadd 
+  :: (Ptr RawTH1C) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH1C_DistancetoPrimitive" c_th1c_distancetoprimitive 
+  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1C_Divide" c_th1c_divide 
+  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH1C_DrawCopy" c_th1c_drawcopy 
+  :: (Ptr RawTH1C) -> CString -> IO (Ptr RawTH1C)
+foreign import ccall "HROOT.h TH1C_DrawNormalized" c_th1c_drawnormalized 
+  :: (Ptr RawTH1C) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1C_DrawPanel" c_th1c_drawpanel 
+  :: (Ptr RawTH1C) -> IO ()
+foreign import ccall "HROOT.h TH1C_BufferEmpty" c_th1c_bufferempty 
+  :: (Ptr RawTH1C) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1C_Eval" c_th1c_eval 
+  :: (Ptr RawTH1C) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1C_ExecuteEvent" c_th1c_executeevent 
+  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1C_FFT" c_th1c_fft 
+  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1C_fill1" c_th1c_fill1 
+  :: (Ptr RawTH1C) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1C_FillN" c_th1c_filln 
+  :: (Ptr RawTH1C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1C_FillRandom" c_th1c_fillrandom 
+  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1C_FindBin" c_th1c_findbin 
+  :: (Ptr RawTH1C) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1C_FindFixBin" c_th1c_findfixbin 
+  :: (Ptr RawTH1C) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1C_FindFirstBinAbove" c_th1c_findfirstbinabove 
+  :: (Ptr RawTH1C) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1C_FindLastBinAbove" c_th1c_findlastbinabove 
+  :: (Ptr RawTH1C) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1C_FitPanel" c_th1c_fitpanel 
+  :: (Ptr RawTH1C) -> IO ()
+foreign import ccall "HROOT.h TH1C_GetNdivisions" c_th1c_getndivisions 
+  :: (Ptr RawTH1C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1C_GetAxisColor" c_th1c_getaxiscolor 
+  :: (Ptr RawTH1C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1C_GetLabelColor" c_th1c_getlabelcolor 
+  :: (Ptr RawTH1C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1C_GetLabelFont" c_th1c_getlabelfont 
+  :: (Ptr RawTH1C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1C_GetLabelOffset" c_th1c_getlabeloffset 
+  :: (Ptr RawTH1C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetLabelSize" c_th1c_getlabelsize 
+  :: (Ptr RawTH1C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetTitleFont" c_th1c_gettitlefont 
+  :: (Ptr RawTH1C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1C_GetTitleOffset" c_th1c_gettitleoffset 
+  :: (Ptr RawTH1C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetTitleSize" c_th1c_gettitlesize 
+  :: (Ptr RawTH1C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetTickLength" c_th1c_getticklength 
+  :: (Ptr RawTH1C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBarOffset" c_th1c_getbaroffset 
+  :: (Ptr RawTH1C) -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBarWidth" c_th1c_getbarwidth 
+  :: (Ptr RawTH1C) -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetContour" c_th1c_getcontour 
+  :: (Ptr RawTH1C) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH1C_GetContourLevel" c_th1c_getcontourlevel 
+  :: (Ptr RawTH1C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetContourLevelPad" c_th1c_getcontourlevelpad 
+  :: (Ptr RawTH1C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBin" c_th1c_getbin 
+  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1C_GetBinCenter" c_th1c_getbincenter 
+  :: (Ptr RawTH1C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBinContent1" c_th1c_getbincontent1 
+  :: (Ptr RawTH1C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBinContent2" c_th1c_getbincontent2 
+  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBinContent3" c_th1c_getbincontent3 
+  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBinError1" c_th1c_getbinerror1 
+  :: (Ptr RawTH1C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBinError2" c_th1c_getbinerror2 
+  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBinError3" c_th1c_getbinerror3 
+  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBinLowEdge" c_th1c_getbinlowedge 
+  :: (Ptr RawTH1C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetBinWidth" c_th1c_getbinwidth 
+  :: (Ptr RawTH1C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetCellContent" c_th1c_getcellcontent 
+  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_GetCellError" c_th1c_getcellerror 
+  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1C_SetTitle" c_th1c_settitle 
+  :: (Ptr RawTH1C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1C_SetLineColor" c_th1c_setlinecolor 
+  :: (Ptr RawTH1C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1C_SetFillColor" c_th1c_setfillcolor 
+  :: (Ptr RawTH1C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1C_SetFillStyle" c_th1c_setfillstyle 
+  :: (Ptr RawTH1C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1C_GetName" c_th1c_getname 
+  :: (Ptr RawTH1C) -> IO CString
+foreign import ccall "HROOT.h TH1C_Draw" c_th1c_draw 
+  :: (Ptr RawTH1C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1C_FindObject" c_th1c_findobject 
+  :: (Ptr RawTH1C) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH1C_SaveAs" c_th1c_saveas 
+  :: (Ptr RawTH1C) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1C_Write" c_th1c_write 
+  :: (Ptr RawTH1C) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1C_delete" c_th1c_delete 
+  :: (Ptr RawTH1C) -> IO ()
+
+foreign import ccall "HROOT.h TH1D_Add" c_th1d_add 
+  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1D_AddBinContent" c_th1d_addbincontent 
+  :: (Ptr RawTH1D) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1D_Chi2Test" c_th1d_chi2test 
+  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH1D_ComputeIntegral" c_th1d_computeintegral 
+  :: (Ptr RawTH1D) -> IO CDouble
+foreign import ccall "HROOT.h TH1D_DirectoryAutoAdd" c_th1d_directoryautoadd 
+  :: (Ptr RawTH1D) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH1D_DistancetoPrimitive" c_th1d_distancetoprimitive 
+  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1D_Divide" c_th1d_divide 
+  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH1D_DrawCopy" c_th1d_drawcopy 
+  :: (Ptr RawTH1D) -> CString -> IO (Ptr RawTH1D)
+foreign import ccall "HROOT.h TH1D_DrawNormalized" c_th1d_drawnormalized 
+  :: (Ptr RawTH1D) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1D_DrawPanel" c_th1d_drawpanel 
+  :: (Ptr RawTH1D) -> IO ()
+foreign import ccall "HROOT.h TH1D_BufferEmpty" c_th1d_bufferempty 
+  :: (Ptr RawTH1D) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1D_Eval" c_th1d_eval 
+  :: (Ptr RawTH1D) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1D_ExecuteEvent" c_th1d_executeevent 
+  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1D_FFT" c_th1d_fft 
+  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1D_fill1" c_th1d_fill1 
+  :: (Ptr RawTH1D) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1D_FillN" c_th1d_filln 
+  :: (Ptr RawTH1D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1D_FillRandom" c_th1d_fillrandom 
+  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1D_FindBin" c_th1d_findbin 
+  :: (Ptr RawTH1D) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1D_FindFixBin" c_th1d_findfixbin 
+  :: (Ptr RawTH1D) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1D_FindFirstBinAbove" c_th1d_findfirstbinabove 
+  :: (Ptr RawTH1D) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1D_FindLastBinAbove" c_th1d_findlastbinabove 
+  :: (Ptr RawTH1D) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1D_FitPanel" c_th1d_fitpanel 
+  :: (Ptr RawTH1D) -> IO ()
+foreign import ccall "HROOT.h TH1D_GetNdivisions" c_th1d_getndivisions 
+  :: (Ptr RawTH1D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1D_GetAxisColor" c_th1d_getaxiscolor 
+  :: (Ptr RawTH1D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1D_GetLabelColor" c_th1d_getlabelcolor 
+  :: (Ptr RawTH1D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1D_GetLabelFont" c_th1d_getlabelfont 
+  :: (Ptr RawTH1D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1D_GetLabelOffset" c_th1d_getlabeloffset 
+  :: (Ptr RawTH1D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetLabelSize" c_th1d_getlabelsize 
+  :: (Ptr RawTH1D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetTitleFont" c_th1d_gettitlefont 
+  :: (Ptr RawTH1D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1D_GetTitleOffset" c_th1d_gettitleoffset 
+  :: (Ptr RawTH1D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetTitleSize" c_th1d_gettitlesize 
+  :: (Ptr RawTH1D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetTickLength" c_th1d_getticklength 
+  :: (Ptr RawTH1D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBarOffset" c_th1d_getbaroffset 
+  :: (Ptr RawTH1D) -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBarWidth" c_th1d_getbarwidth 
+  :: (Ptr RawTH1D) -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetContour" c_th1d_getcontour 
+  :: (Ptr RawTH1D) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH1D_GetContourLevel" c_th1d_getcontourlevel 
+  :: (Ptr RawTH1D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetContourLevelPad" c_th1d_getcontourlevelpad 
+  :: (Ptr RawTH1D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBin" c_th1d_getbin 
+  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1D_GetBinCenter" c_th1d_getbincenter 
+  :: (Ptr RawTH1D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBinContent1" c_th1d_getbincontent1 
+  :: (Ptr RawTH1D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBinContent2" c_th1d_getbincontent2 
+  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBinContent3" c_th1d_getbincontent3 
+  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBinError1" c_th1d_getbinerror1 
+  :: (Ptr RawTH1D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBinError2" c_th1d_getbinerror2 
+  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBinError3" c_th1d_getbinerror3 
+  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBinLowEdge" c_th1d_getbinlowedge 
+  :: (Ptr RawTH1D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetBinWidth" c_th1d_getbinwidth 
+  :: (Ptr RawTH1D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetCellContent" c_th1d_getcellcontent 
+  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_GetCellError" c_th1d_getcellerror 
+  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1D_SetTitle" c_th1d_settitle 
+  :: (Ptr RawTH1D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1D_SetLineColor" c_th1d_setlinecolor 
+  :: (Ptr RawTH1D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1D_SetFillColor" c_th1d_setfillcolor 
+  :: (Ptr RawTH1D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1D_SetFillStyle" c_th1d_setfillstyle 
+  :: (Ptr RawTH1D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1D_GetName" c_th1d_getname 
+  :: (Ptr RawTH1D) -> IO CString
+foreign import ccall "HROOT.h TH1D_Draw" c_th1d_draw 
+  :: (Ptr RawTH1D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1D_FindObject" c_th1d_findobject 
+  :: (Ptr RawTH1D) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH1D_SaveAs" c_th1d_saveas 
+  :: (Ptr RawTH1D) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1D_Write" c_th1d_write 
+  :: (Ptr RawTH1D) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1D_delete" c_th1d_delete 
+  :: (Ptr RawTH1D) -> IO ()
+
+foreign import ccall "HROOT.h TH1F_Add" c_th1f_add 
+  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1F_AddBinContent" c_th1f_addbincontent 
+  :: (Ptr RawTH1F) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1F_Chi2Test" c_th1f_chi2test 
+  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH1F_ComputeIntegral" c_th1f_computeintegral 
+  :: (Ptr RawTH1F) -> IO CDouble
+foreign import ccall "HROOT.h TH1F_DirectoryAutoAdd" c_th1f_directoryautoadd 
+  :: (Ptr RawTH1F) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH1F_DistancetoPrimitive" c_th1f_distancetoprimitive 
+  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1F_Divide" c_th1f_divide 
+  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH1F_DrawCopy" c_th1f_drawcopy 
+  :: (Ptr RawTH1F) -> CString -> IO (Ptr RawTH1F)
+foreign import ccall "HROOT.h TH1F_DrawNormalized" c_th1f_drawnormalized 
+  :: (Ptr RawTH1F) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1F_DrawPanel" c_th1f_drawpanel 
+  :: (Ptr RawTH1F) -> IO ()
+foreign import ccall "HROOT.h TH1F_BufferEmpty" c_th1f_bufferempty 
+  :: (Ptr RawTH1F) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1F_Eval" c_th1f_eval 
+  :: (Ptr RawTH1F) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1F_ExecuteEvent" c_th1f_executeevent 
+  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1F_FFT" c_th1f_fft 
+  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1F_fill1" c_th1f_fill1 
+  :: (Ptr RawTH1F) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1F_FillN" c_th1f_filln 
+  :: (Ptr RawTH1F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1F_FillRandom" c_th1f_fillrandom 
+  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1F_FindBin" c_th1f_findbin 
+  :: (Ptr RawTH1F) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1F_FindFixBin" c_th1f_findfixbin 
+  :: (Ptr RawTH1F) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1F_FindFirstBinAbove" c_th1f_findfirstbinabove 
+  :: (Ptr RawTH1F) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1F_FindLastBinAbove" c_th1f_findlastbinabove 
+  :: (Ptr RawTH1F) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1F_FitPanel" c_th1f_fitpanel 
+  :: (Ptr RawTH1F) -> IO ()
+foreign import ccall "HROOT.h TH1F_GetNdivisions" c_th1f_getndivisions 
+  :: (Ptr RawTH1F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1F_GetAxisColor" c_th1f_getaxiscolor 
+  :: (Ptr RawTH1F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1F_GetLabelColor" c_th1f_getlabelcolor 
+  :: (Ptr RawTH1F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1F_GetLabelFont" c_th1f_getlabelfont 
+  :: (Ptr RawTH1F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1F_GetLabelOffset" c_th1f_getlabeloffset 
+  :: (Ptr RawTH1F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetLabelSize" c_th1f_getlabelsize 
+  :: (Ptr RawTH1F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetTitleFont" c_th1f_gettitlefont 
+  :: (Ptr RawTH1F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1F_GetTitleOffset" c_th1f_gettitleoffset 
+  :: (Ptr RawTH1F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetTitleSize" c_th1f_gettitlesize 
+  :: (Ptr RawTH1F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetTickLength" c_th1f_getticklength 
+  :: (Ptr RawTH1F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBarOffset" c_th1f_getbaroffset 
+  :: (Ptr RawTH1F) -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBarWidth" c_th1f_getbarwidth 
+  :: (Ptr RawTH1F) -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetContour" c_th1f_getcontour 
+  :: (Ptr RawTH1F) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH1F_GetContourLevel" c_th1f_getcontourlevel 
+  :: (Ptr RawTH1F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetContourLevelPad" c_th1f_getcontourlevelpad 
+  :: (Ptr RawTH1F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBin" c_th1f_getbin 
+  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1F_GetBinCenter" c_th1f_getbincenter 
+  :: (Ptr RawTH1F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBinContent1" c_th1f_getbincontent1 
+  :: (Ptr RawTH1F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBinContent2" c_th1f_getbincontent2 
+  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBinContent3" c_th1f_getbincontent3 
+  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBinError1" c_th1f_getbinerror1 
+  :: (Ptr RawTH1F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBinError2" c_th1f_getbinerror2 
+  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBinError3" c_th1f_getbinerror3 
+  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBinLowEdge" c_th1f_getbinlowedge 
+  :: (Ptr RawTH1F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetBinWidth" c_th1f_getbinwidth 
+  :: (Ptr RawTH1F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetCellContent" c_th1f_getcellcontent 
+  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_GetCellError" c_th1f_getcellerror 
+  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1F_SetTitle" c_th1f_settitle 
+  :: (Ptr RawTH1F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1F_SetLineColor" c_th1f_setlinecolor 
+  :: (Ptr RawTH1F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1F_SetFillColor" c_th1f_setfillcolor 
+  :: (Ptr RawTH1F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1F_SetFillStyle" c_th1f_setfillstyle 
+  :: (Ptr RawTH1F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1F_GetName" c_th1f_getname 
+  :: (Ptr RawTH1F) -> IO CString
+foreign import ccall "HROOT.h TH1F_Draw" c_th1f_draw 
+  :: (Ptr RawTH1F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1F_FindObject" c_th1f_findobject 
+  :: (Ptr RawTH1F) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH1F_SaveAs" c_th1f_saveas 
+  :: (Ptr RawTH1F) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1F_Write" c_th1f_write 
+  :: (Ptr RawTH1F) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1F_delete" c_th1f_delete 
+  :: (Ptr RawTH1F) -> IO ()
+foreign import ccall "HROOT.h TH1F_newTH1F" c_th1f_newth1f 
+  :: CString -> CString -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH1F)
+
+foreign import ccall "HROOT.h TH1I_Add" c_th1i_add 
+  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1I_AddBinContent" c_th1i_addbincontent 
+  :: (Ptr RawTH1I) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1I_Chi2Test" c_th1i_chi2test 
+  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH1I_ComputeIntegral" c_th1i_computeintegral 
+  :: (Ptr RawTH1I) -> IO CDouble
+foreign import ccall "HROOT.h TH1I_DirectoryAutoAdd" c_th1i_directoryautoadd 
+  :: (Ptr RawTH1I) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH1I_DistancetoPrimitive" c_th1i_distancetoprimitive 
+  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1I_Divide" c_th1i_divide 
+  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH1I_DrawCopy" c_th1i_drawcopy 
+  :: (Ptr RawTH1I) -> CString -> IO (Ptr RawTH1I)
+foreign import ccall "HROOT.h TH1I_DrawNormalized" c_th1i_drawnormalized 
+  :: (Ptr RawTH1I) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1I_DrawPanel" c_th1i_drawpanel 
+  :: (Ptr RawTH1I) -> IO ()
+foreign import ccall "HROOT.h TH1I_BufferEmpty" c_th1i_bufferempty 
+  :: (Ptr RawTH1I) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1I_Eval" c_th1i_eval 
+  :: (Ptr RawTH1I) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1I_ExecuteEvent" c_th1i_executeevent 
+  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1I_FFT" c_th1i_fft 
+  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1I_fill1" c_th1i_fill1 
+  :: (Ptr RawTH1I) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1I_FillN" c_th1i_filln 
+  :: (Ptr RawTH1I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1I_FillRandom" c_th1i_fillrandom 
+  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1I_FindBin" c_th1i_findbin 
+  :: (Ptr RawTH1I) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1I_FindFixBin" c_th1i_findfixbin 
+  :: (Ptr RawTH1I) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1I_FindFirstBinAbove" c_th1i_findfirstbinabove 
+  :: (Ptr RawTH1I) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1I_FindLastBinAbove" c_th1i_findlastbinabove 
+  :: (Ptr RawTH1I) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1I_FitPanel" c_th1i_fitpanel 
+  :: (Ptr RawTH1I) -> IO ()
+foreign import ccall "HROOT.h TH1I_GetNdivisions" c_th1i_getndivisions 
+  :: (Ptr RawTH1I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1I_GetAxisColor" c_th1i_getaxiscolor 
+  :: (Ptr RawTH1I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1I_GetLabelColor" c_th1i_getlabelcolor 
+  :: (Ptr RawTH1I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1I_GetLabelFont" c_th1i_getlabelfont 
+  :: (Ptr RawTH1I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1I_GetLabelOffset" c_th1i_getlabeloffset 
+  :: (Ptr RawTH1I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetLabelSize" c_th1i_getlabelsize 
+  :: (Ptr RawTH1I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetTitleFont" c_th1i_gettitlefont 
+  :: (Ptr RawTH1I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1I_GetTitleOffset" c_th1i_gettitleoffset 
+  :: (Ptr RawTH1I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetTitleSize" c_th1i_gettitlesize 
+  :: (Ptr RawTH1I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetTickLength" c_th1i_getticklength 
+  :: (Ptr RawTH1I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBarOffset" c_th1i_getbaroffset 
+  :: (Ptr RawTH1I) -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBarWidth" c_th1i_getbarwidth 
+  :: (Ptr RawTH1I) -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetContour" c_th1i_getcontour 
+  :: (Ptr RawTH1I) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH1I_GetContourLevel" c_th1i_getcontourlevel 
+  :: (Ptr RawTH1I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetContourLevelPad" c_th1i_getcontourlevelpad 
+  :: (Ptr RawTH1I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBin" c_th1i_getbin 
+  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1I_GetBinCenter" c_th1i_getbincenter 
+  :: (Ptr RawTH1I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBinContent1" c_th1i_getbincontent1 
+  :: (Ptr RawTH1I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBinContent2" c_th1i_getbincontent2 
+  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBinContent3" c_th1i_getbincontent3 
+  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBinError1" c_th1i_getbinerror1 
+  :: (Ptr RawTH1I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBinError2" c_th1i_getbinerror2 
+  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBinError3" c_th1i_getbinerror3 
+  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBinLowEdge" c_th1i_getbinlowedge 
+  :: (Ptr RawTH1I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetBinWidth" c_th1i_getbinwidth 
+  :: (Ptr RawTH1I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetCellContent" c_th1i_getcellcontent 
+  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_GetCellError" c_th1i_getcellerror 
+  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1I_SetTitle" c_th1i_settitle 
+  :: (Ptr RawTH1I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1I_SetLineColor" c_th1i_setlinecolor 
+  :: (Ptr RawTH1I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1I_SetFillColor" c_th1i_setfillcolor 
+  :: (Ptr RawTH1I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1I_SetFillStyle" c_th1i_setfillstyle 
+  :: (Ptr RawTH1I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1I_GetName" c_th1i_getname 
+  :: (Ptr RawTH1I) -> IO CString
+foreign import ccall "HROOT.h TH1I_Draw" c_th1i_draw 
+  :: (Ptr RawTH1I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1I_FindObject" c_th1i_findobject 
+  :: (Ptr RawTH1I) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH1I_SaveAs" c_th1i_saveas 
+  :: (Ptr RawTH1I) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1I_Write" c_th1i_write 
+  :: (Ptr RawTH1I) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1I_delete" c_th1i_delete 
+  :: (Ptr RawTH1I) -> IO ()
+
+foreign import ccall "HROOT.h TH1S_Add" c_th1s_add 
+  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1S_AddBinContent" c_th1s_addbincontent 
+  :: (Ptr RawTH1S) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1S_Chi2Test" c_th1s_chi2test 
+  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH1S_ComputeIntegral" c_th1s_computeintegral 
+  :: (Ptr RawTH1S) -> IO CDouble
+foreign import ccall "HROOT.h TH1S_DirectoryAutoAdd" c_th1s_directoryautoadd 
+  :: (Ptr RawTH1S) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH1S_DistancetoPrimitive" c_th1s_distancetoprimitive 
+  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1S_Divide" c_th1s_divide 
+  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH1S_DrawCopy" c_th1s_drawcopy 
+  :: (Ptr RawTH1S) -> CString -> IO (Ptr RawTH1S)
+foreign import ccall "HROOT.h TH1S_DrawNormalized" c_th1s_drawnormalized 
+  :: (Ptr RawTH1S) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1S_DrawPanel" c_th1s_drawpanel 
+  :: (Ptr RawTH1S) -> IO ()
+foreign import ccall "HROOT.h TH1S_BufferEmpty" c_th1s_bufferempty 
+  :: (Ptr RawTH1S) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1S_Eval" c_th1s_eval 
+  :: (Ptr RawTH1S) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1S_ExecuteEvent" c_th1s_executeevent 
+  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1S_FFT" c_th1s_fft 
+  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH1S_fill1" c_th1s_fill1 
+  :: (Ptr RawTH1S) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1S_FillN" c_th1s_filln 
+  :: (Ptr RawTH1S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1S_FillRandom" c_th1s_fillrandom 
+  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1S_FindBin" c_th1s_findbin 
+  :: (Ptr RawTH1S) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1S_FindFixBin" c_th1s_findfixbin 
+  :: (Ptr RawTH1S) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1S_FindFirstBinAbove" c_th1s_findfirstbinabove 
+  :: (Ptr RawTH1S) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1S_FindLastBinAbove" c_th1s_findlastbinabove 
+  :: (Ptr RawTH1S) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1S_FitPanel" c_th1s_fitpanel 
+  :: (Ptr RawTH1S) -> IO ()
+foreign import ccall "HROOT.h TH1S_GetNdivisions" c_th1s_getndivisions 
+  :: (Ptr RawTH1S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1S_GetAxisColor" c_th1s_getaxiscolor 
+  :: (Ptr RawTH1S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1S_GetLabelColor" c_th1s_getlabelcolor 
+  :: (Ptr RawTH1S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1S_GetLabelFont" c_th1s_getlabelfont 
+  :: (Ptr RawTH1S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1S_GetLabelOffset" c_th1s_getlabeloffset 
+  :: (Ptr RawTH1S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetLabelSize" c_th1s_getlabelsize 
+  :: (Ptr RawTH1S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetTitleFont" c_th1s_gettitlefont 
+  :: (Ptr RawTH1S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH1S_GetTitleOffset" c_th1s_gettitleoffset 
+  :: (Ptr RawTH1S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetTitleSize" c_th1s_gettitlesize 
+  :: (Ptr RawTH1S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetTickLength" c_th1s_getticklength 
+  :: (Ptr RawTH1S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBarOffset" c_th1s_getbaroffset 
+  :: (Ptr RawTH1S) -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBarWidth" c_th1s_getbarwidth 
+  :: (Ptr RawTH1S) -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetContour" c_th1s_getcontour 
+  :: (Ptr RawTH1S) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH1S_GetContourLevel" c_th1s_getcontourlevel 
+  :: (Ptr RawTH1S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetContourLevelPad" c_th1s_getcontourlevelpad 
+  :: (Ptr RawTH1S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBin" c_th1s_getbin 
+  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1S_GetBinCenter" c_th1s_getbincenter 
+  :: (Ptr RawTH1S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBinContent1" c_th1s_getbincontent1 
+  :: (Ptr RawTH1S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBinContent2" c_th1s_getbincontent2 
+  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBinContent3" c_th1s_getbincontent3 
+  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBinError1" c_th1s_getbinerror1 
+  :: (Ptr RawTH1S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBinError2" c_th1s_getbinerror2 
+  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBinError3" c_th1s_getbinerror3 
+  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBinLowEdge" c_th1s_getbinlowedge 
+  :: (Ptr RawTH1S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetBinWidth" c_th1s_getbinwidth 
+  :: (Ptr RawTH1S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetCellContent" c_th1s_getcellcontent 
+  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_GetCellError" c_th1s_getcellerror 
+  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH1S_SetTitle" c_th1s_settitle 
+  :: (Ptr RawTH1S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1S_SetLineColor" c_th1s_setlinecolor 
+  :: (Ptr RawTH1S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1S_SetFillColor" c_th1s_setfillcolor 
+  :: (Ptr RawTH1S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1S_SetFillStyle" c_th1s_setfillstyle 
+  :: (Ptr RawTH1S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1S_GetName" c_th1s_getname 
+  :: (Ptr RawTH1S) -> IO CString
+foreign import ccall "HROOT.h TH1S_Draw" c_th1s_draw 
+  :: (Ptr RawTH1S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1S_FindObject" c_th1s_findobject 
+  :: (Ptr RawTH1S) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH1S_SaveAs" c_th1s_saveas 
+  :: (Ptr RawTH1S) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1S_Write" c_th1s_write 
+  :: (Ptr RawTH1S) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1S_delete" c_th1s_delete 
+  :: (Ptr RawTH1S) -> IO ()
+
+foreign import ccall "HROOT.h TH2C_fill2" c_th2c_fill2 
+  :: (Ptr RawTH2C) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2C_Add" c_th2c_add 
+  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2C_AddBinContent" c_th2c_addbincontent 
+  :: (Ptr RawTH2C) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2C_Chi2Test" c_th2c_chi2test 
+  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH2C_ComputeIntegral" c_th2c_computeintegral 
+  :: (Ptr RawTH2C) -> IO CDouble
+foreign import ccall "HROOT.h TH2C_DirectoryAutoAdd" c_th2c_directoryautoadd 
+  :: (Ptr RawTH2C) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH2C_DistancetoPrimitive" c_th2c_distancetoprimitive 
+  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2C_Divide" c_th2c_divide 
+  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH2C_DrawCopy" c_th2c_drawcopy 
+  :: (Ptr RawTH2C) -> CString -> IO (Ptr RawTH2C)
+foreign import ccall "HROOT.h TH2C_DrawNormalized" c_th2c_drawnormalized 
+  :: (Ptr RawTH2C) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2C_DrawPanel" c_th2c_drawpanel 
+  :: (Ptr RawTH2C) -> IO ()
+foreign import ccall "HROOT.h TH2C_BufferEmpty" c_th2c_bufferempty 
+  :: (Ptr RawTH2C) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2C_Eval" c_th2c_eval 
+  :: (Ptr RawTH2C) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2C_ExecuteEvent" c_th2c_executeevent 
+  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2C_FFT" c_th2c_fft 
+  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2C_fill1" c_th2c_fill1 
+  :: (Ptr RawTH2C) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2C_FillN" c_th2c_filln 
+  :: (Ptr RawTH2C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2C_FillRandom" c_th2c_fillrandom 
+  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2C_FindBin" c_th2c_findbin 
+  :: (Ptr RawTH2C) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2C_FindFixBin" c_th2c_findfixbin 
+  :: (Ptr RawTH2C) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2C_FindFirstBinAbove" c_th2c_findfirstbinabove 
+  :: (Ptr RawTH2C) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2C_FindLastBinAbove" c_th2c_findlastbinabove 
+  :: (Ptr RawTH2C) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2C_FitPanel" c_th2c_fitpanel 
+  :: (Ptr RawTH2C) -> IO ()
+foreign import ccall "HROOT.h TH2C_GetNdivisions" c_th2c_getndivisions 
+  :: (Ptr RawTH2C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2C_GetAxisColor" c_th2c_getaxiscolor 
+  :: (Ptr RawTH2C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2C_GetLabelColor" c_th2c_getlabelcolor 
+  :: (Ptr RawTH2C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2C_GetLabelFont" c_th2c_getlabelfont 
+  :: (Ptr RawTH2C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2C_GetLabelOffset" c_th2c_getlabeloffset 
+  :: (Ptr RawTH2C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetLabelSize" c_th2c_getlabelsize 
+  :: (Ptr RawTH2C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetTitleFont" c_th2c_gettitlefont 
+  :: (Ptr RawTH2C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2C_GetTitleOffset" c_th2c_gettitleoffset 
+  :: (Ptr RawTH2C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetTitleSize" c_th2c_gettitlesize 
+  :: (Ptr RawTH2C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetTickLength" c_th2c_getticklength 
+  :: (Ptr RawTH2C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBarOffset" c_th2c_getbaroffset 
+  :: (Ptr RawTH2C) -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBarWidth" c_th2c_getbarwidth 
+  :: (Ptr RawTH2C) -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetContour" c_th2c_getcontour 
+  :: (Ptr RawTH2C) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH2C_GetContourLevel" c_th2c_getcontourlevel 
+  :: (Ptr RawTH2C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetContourLevelPad" c_th2c_getcontourlevelpad 
+  :: (Ptr RawTH2C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBin" c_th2c_getbin 
+  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2C_GetBinCenter" c_th2c_getbincenter 
+  :: (Ptr RawTH2C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBinContent1" c_th2c_getbincontent1 
+  :: (Ptr RawTH2C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBinContent2" c_th2c_getbincontent2 
+  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBinContent3" c_th2c_getbincontent3 
+  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBinError1" c_th2c_getbinerror1 
+  :: (Ptr RawTH2C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBinError2" c_th2c_getbinerror2 
+  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBinError3" c_th2c_getbinerror3 
+  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBinLowEdge" c_th2c_getbinlowedge 
+  :: (Ptr RawTH2C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetBinWidth" c_th2c_getbinwidth 
+  :: (Ptr RawTH2C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetCellContent" c_th2c_getcellcontent 
+  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_GetCellError" c_th2c_getcellerror 
+  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2C_SetTitle" c_th2c_settitle 
+  :: (Ptr RawTH2C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2C_SetLineColor" c_th2c_setlinecolor 
+  :: (Ptr RawTH2C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2C_SetFillColor" c_th2c_setfillcolor 
+  :: (Ptr RawTH2C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2C_SetFillStyle" c_th2c_setfillstyle 
+  :: (Ptr RawTH2C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2C_GetName" c_th2c_getname 
+  :: (Ptr RawTH2C) -> IO CString
+foreign import ccall "HROOT.h TH2C_Draw" c_th2c_draw 
+  :: (Ptr RawTH2C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2C_FindObject" c_th2c_findobject 
+  :: (Ptr RawTH2C) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH2C_SaveAs" c_th2c_saveas 
+  :: (Ptr RawTH2C) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2C_Write" c_th2c_write 
+  :: (Ptr RawTH2C) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2C_delete" c_th2c_delete 
+  :: (Ptr RawTH2C) -> IO ()
+
+foreign import ccall "HROOT.h TH2D_fill2" c_th2d_fill2 
+  :: (Ptr RawTH2D) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2D_Add" c_th2d_add 
+  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2D_AddBinContent" c_th2d_addbincontent 
+  :: (Ptr RawTH2D) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2D_Chi2Test" c_th2d_chi2test 
+  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH2D_ComputeIntegral" c_th2d_computeintegral 
+  :: (Ptr RawTH2D) -> IO CDouble
+foreign import ccall "HROOT.h TH2D_DirectoryAutoAdd" c_th2d_directoryautoadd 
+  :: (Ptr RawTH2D) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH2D_DistancetoPrimitive" c_th2d_distancetoprimitive 
+  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2D_Divide" c_th2d_divide 
+  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH2D_DrawCopy" c_th2d_drawcopy 
+  :: (Ptr RawTH2D) -> CString -> IO (Ptr RawTH2D)
+foreign import ccall "HROOT.h TH2D_DrawNormalized" c_th2d_drawnormalized 
+  :: (Ptr RawTH2D) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2D_DrawPanel" c_th2d_drawpanel 
+  :: (Ptr RawTH2D) -> IO ()
+foreign import ccall "HROOT.h TH2D_BufferEmpty" c_th2d_bufferempty 
+  :: (Ptr RawTH2D) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2D_Eval" c_th2d_eval 
+  :: (Ptr RawTH2D) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2D_ExecuteEvent" c_th2d_executeevent 
+  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2D_FFT" c_th2d_fft 
+  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2D_fill1" c_th2d_fill1 
+  :: (Ptr RawTH2D) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2D_FillN" c_th2d_filln 
+  :: (Ptr RawTH2D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2D_FillRandom" c_th2d_fillrandom 
+  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2D_FindBin" c_th2d_findbin 
+  :: (Ptr RawTH2D) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2D_FindFixBin" c_th2d_findfixbin 
+  :: (Ptr RawTH2D) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2D_FindFirstBinAbove" c_th2d_findfirstbinabove 
+  :: (Ptr RawTH2D) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2D_FindLastBinAbove" c_th2d_findlastbinabove 
+  :: (Ptr RawTH2D) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2D_FitPanel" c_th2d_fitpanel 
+  :: (Ptr RawTH2D) -> IO ()
+foreign import ccall "HROOT.h TH2D_GetNdivisions" c_th2d_getndivisions 
+  :: (Ptr RawTH2D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2D_GetAxisColor" c_th2d_getaxiscolor 
+  :: (Ptr RawTH2D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2D_GetLabelColor" c_th2d_getlabelcolor 
+  :: (Ptr RawTH2D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2D_GetLabelFont" c_th2d_getlabelfont 
+  :: (Ptr RawTH2D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2D_GetLabelOffset" c_th2d_getlabeloffset 
+  :: (Ptr RawTH2D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetLabelSize" c_th2d_getlabelsize 
+  :: (Ptr RawTH2D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetTitleFont" c_th2d_gettitlefont 
+  :: (Ptr RawTH2D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2D_GetTitleOffset" c_th2d_gettitleoffset 
+  :: (Ptr RawTH2D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetTitleSize" c_th2d_gettitlesize 
+  :: (Ptr RawTH2D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetTickLength" c_th2d_getticklength 
+  :: (Ptr RawTH2D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBarOffset" c_th2d_getbaroffset 
+  :: (Ptr RawTH2D) -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBarWidth" c_th2d_getbarwidth 
+  :: (Ptr RawTH2D) -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetContour" c_th2d_getcontour 
+  :: (Ptr RawTH2D) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH2D_GetContourLevel" c_th2d_getcontourlevel 
+  :: (Ptr RawTH2D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetContourLevelPad" c_th2d_getcontourlevelpad 
+  :: (Ptr RawTH2D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBin" c_th2d_getbin 
+  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2D_GetBinCenter" c_th2d_getbincenter 
+  :: (Ptr RawTH2D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBinContent1" c_th2d_getbincontent1 
+  :: (Ptr RawTH2D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBinContent2" c_th2d_getbincontent2 
+  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBinContent3" c_th2d_getbincontent3 
+  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBinError1" c_th2d_getbinerror1 
+  :: (Ptr RawTH2D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBinError2" c_th2d_getbinerror2 
+  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBinError3" c_th2d_getbinerror3 
+  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBinLowEdge" c_th2d_getbinlowedge 
+  :: (Ptr RawTH2D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetBinWidth" c_th2d_getbinwidth 
+  :: (Ptr RawTH2D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetCellContent" c_th2d_getcellcontent 
+  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_GetCellError" c_th2d_getcellerror 
+  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2D_SetTitle" c_th2d_settitle 
+  :: (Ptr RawTH2D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2D_SetLineColor" c_th2d_setlinecolor 
+  :: (Ptr RawTH2D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2D_SetFillColor" c_th2d_setfillcolor 
+  :: (Ptr RawTH2D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2D_SetFillStyle" c_th2d_setfillstyle 
+  :: (Ptr RawTH2D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2D_GetName" c_th2d_getname 
+  :: (Ptr RawTH2D) -> IO CString
+foreign import ccall "HROOT.h TH2D_Draw" c_th2d_draw 
+  :: (Ptr RawTH2D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2D_FindObject" c_th2d_findobject 
+  :: (Ptr RawTH2D) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH2D_SaveAs" c_th2d_saveas 
+  :: (Ptr RawTH2D) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2D_Write" c_th2d_write 
+  :: (Ptr RawTH2D) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2D_delete" c_th2d_delete 
+  :: (Ptr RawTH2D) -> IO ()
+
+foreign import ccall "HROOT.h TH2F_fill2" c_th2f_fill2 
+  :: (Ptr RawTH2F) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2F_Add" c_th2f_add 
+  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2F_AddBinContent" c_th2f_addbincontent 
+  :: (Ptr RawTH2F) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2F_Chi2Test" c_th2f_chi2test 
+  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH2F_ComputeIntegral" c_th2f_computeintegral 
+  :: (Ptr RawTH2F) -> IO CDouble
+foreign import ccall "HROOT.h TH2F_DirectoryAutoAdd" c_th2f_directoryautoadd 
+  :: (Ptr RawTH2F) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH2F_DistancetoPrimitive" c_th2f_distancetoprimitive 
+  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2F_Divide" c_th2f_divide 
+  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH2F_DrawCopy" c_th2f_drawcopy 
+  :: (Ptr RawTH2F) -> CString -> IO (Ptr RawTH2F)
+foreign import ccall "HROOT.h TH2F_DrawNormalized" c_th2f_drawnormalized 
+  :: (Ptr RawTH2F) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2F_DrawPanel" c_th2f_drawpanel 
+  :: (Ptr RawTH2F) -> IO ()
+foreign import ccall "HROOT.h TH2F_BufferEmpty" c_th2f_bufferempty 
+  :: (Ptr RawTH2F) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2F_Eval" c_th2f_eval 
+  :: (Ptr RawTH2F) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2F_ExecuteEvent" c_th2f_executeevent 
+  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2F_FFT" c_th2f_fft 
+  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2F_fill1" c_th2f_fill1 
+  :: (Ptr RawTH2F) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2F_FillN" c_th2f_filln 
+  :: (Ptr RawTH2F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2F_FillRandom" c_th2f_fillrandom 
+  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2F_FindBin" c_th2f_findbin 
+  :: (Ptr RawTH2F) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2F_FindFixBin" c_th2f_findfixbin 
+  :: (Ptr RawTH2F) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2F_FindFirstBinAbove" c_th2f_findfirstbinabove 
+  :: (Ptr RawTH2F) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2F_FindLastBinAbove" c_th2f_findlastbinabove 
+  :: (Ptr RawTH2F) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2F_FitPanel" c_th2f_fitpanel 
+  :: (Ptr RawTH2F) -> IO ()
+foreign import ccall "HROOT.h TH2F_GetNdivisions" c_th2f_getndivisions 
+  :: (Ptr RawTH2F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2F_GetAxisColor" c_th2f_getaxiscolor 
+  :: (Ptr RawTH2F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2F_GetLabelColor" c_th2f_getlabelcolor 
+  :: (Ptr RawTH2F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2F_GetLabelFont" c_th2f_getlabelfont 
+  :: (Ptr RawTH2F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2F_GetLabelOffset" c_th2f_getlabeloffset 
+  :: (Ptr RawTH2F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetLabelSize" c_th2f_getlabelsize 
+  :: (Ptr RawTH2F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetTitleFont" c_th2f_gettitlefont 
+  :: (Ptr RawTH2F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2F_GetTitleOffset" c_th2f_gettitleoffset 
+  :: (Ptr RawTH2F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetTitleSize" c_th2f_gettitlesize 
+  :: (Ptr RawTH2F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetTickLength" c_th2f_getticklength 
+  :: (Ptr RawTH2F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBarOffset" c_th2f_getbaroffset 
+  :: (Ptr RawTH2F) -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBarWidth" c_th2f_getbarwidth 
+  :: (Ptr RawTH2F) -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetContour" c_th2f_getcontour 
+  :: (Ptr RawTH2F) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH2F_GetContourLevel" c_th2f_getcontourlevel 
+  :: (Ptr RawTH2F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetContourLevelPad" c_th2f_getcontourlevelpad 
+  :: (Ptr RawTH2F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBin" c_th2f_getbin 
+  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2F_GetBinCenter" c_th2f_getbincenter 
+  :: (Ptr RawTH2F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBinContent1" c_th2f_getbincontent1 
+  :: (Ptr RawTH2F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBinContent2" c_th2f_getbincontent2 
+  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBinContent3" c_th2f_getbincontent3 
+  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBinError1" c_th2f_getbinerror1 
+  :: (Ptr RawTH2F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBinError2" c_th2f_getbinerror2 
+  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBinError3" c_th2f_getbinerror3 
+  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBinLowEdge" c_th2f_getbinlowedge 
+  :: (Ptr RawTH2F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetBinWidth" c_th2f_getbinwidth 
+  :: (Ptr RawTH2F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetCellContent" c_th2f_getcellcontent 
+  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_GetCellError" c_th2f_getcellerror 
+  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2F_SetTitle" c_th2f_settitle 
+  :: (Ptr RawTH2F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2F_SetLineColor" c_th2f_setlinecolor 
+  :: (Ptr RawTH2F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2F_SetFillColor" c_th2f_setfillcolor 
+  :: (Ptr RawTH2F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2F_SetFillStyle" c_th2f_setfillstyle 
+  :: (Ptr RawTH2F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2F_GetName" c_th2f_getname 
+  :: (Ptr RawTH2F) -> IO CString
+foreign import ccall "HROOT.h TH2F_Draw" c_th2f_draw 
+  :: (Ptr RawTH2F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2F_FindObject" c_th2f_findobject 
+  :: (Ptr RawTH2F) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH2F_SaveAs" c_th2f_saveas 
+  :: (Ptr RawTH2F) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2F_Write" c_th2f_write 
+  :: (Ptr RawTH2F) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2F_delete" c_th2f_delete 
+  :: (Ptr RawTH2F) -> IO ()
+foreign import ccall "HROOT.h TH2F_newTH2F" c_th2f_newth2f 
+  :: CString -> CString -> CInt -> CDouble -> CDouble -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH2F)
+
+foreign import ccall "HROOT.h TH2I_fill2" c_th2i_fill2 
+  :: (Ptr RawTH2I) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2I_Add" c_th2i_add 
+  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2I_AddBinContent" c_th2i_addbincontent 
+  :: (Ptr RawTH2I) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2I_Chi2Test" c_th2i_chi2test 
+  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH2I_ComputeIntegral" c_th2i_computeintegral 
+  :: (Ptr RawTH2I) -> IO CDouble
+foreign import ccall "HROOT.h TH2I_DirectoryAutoAdd" c_th2i_directoryautoadd 
+  :: (Ptr RawTH2I) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH2I_DistancetoPrimitive" c_th2i_distancetoprimitive 
+  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2I_Divide" c_th2i_divide 
+  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH2I_DrawCopy" c_th2i_drawcopy 
+  :: (Ptr RawTH2I) -> CString -> IO (Ptr RawTH2I)
+foreign import ccall "HROOT.h TH2I_DrawNormalized" c_th2i_drawnormalized 
+  :: (Ptr RawTH2I) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2I_DrawPanel" c_th2i_drawpanel 
+  :: (Ptr RawTH2I) -> IO ()
+foreign import ccall "HROOT.h TH2I_BufferEmpty" c_th2i_bufferempty 
+  :: (Ptr RawTH2I) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2I_Eval" c_th2i_eval 
+  :: (Ptr RawTH2I) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2I_ExecuteEvent" c_th2i_executeevent 
+  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2I_FFT" c_th2i_fft 
+  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2I_fill1" c_th2i_fill1 
+  :: (Ptr RawTH2I) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2I_FillN" c_th2i_filln 
+  :: (Ptr RawTH2I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2I_FillRandom" c_th2i_fillrandom 
+  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2I_FindBin" c_th2i_findbin 
+  :: (Ptr RawTH2I) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2I_FindFixBin" c_th2i_findfixbin 
+  :: (Ptr RawTH2I) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2I_FindFirstBinAbove" c_th2i_findfirstbinabove 
+  :: (Ptr RawTH2I) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2I_FindLastBinAbove" c_th2i_findlastbinabove 
+  :: (Ptr RawTH2I) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2I_FitPanel" c_th2i_fitpanel 
+  :: (Ptr RawTH2I) -> IO ()
+foreign import ccall "HROOT.h TH2I_GetNdivisions" c_th2i_getndivisions 
+  :: (Ptr RawTH2I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2I_GetAxisColor" c_th2i_getaxiscolor 
+  :: (Ptr RawTH2I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2I_GetLabelColor" c_th2i_getlabelcolor 
+  :: (Ptr RawTH2I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2I_GetLabelFont" c_th2i_getlabelfont 
+  :: (Ptr RawTH2I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2I_GetLabelOffset" c_th2i_getlabeloffset 
+  :: (Ptr RawTH2I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetLabelSize" c_th2i_getlabelsize 
+  :: (Ptr RawTH2I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetTitleFont" c_th2i_gettitlefont 
+  :: (Ptr RawTH2I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2I_GetTitleOffset" c_th2i_gettitleoffset 
+  :: (Ptr RawTH2I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetTitleSize" c_th2i_gettitlesize 
+  :: (Ptr RawTH2I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetTickLength" c_th2i_getticklength 
+  :: (Ptr RawTH2I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBarOffset" c_th2i_getbaroffset 
+  :: (Ptr RawTH2I) -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBarWidth" c_th2i_getbarwidth 
+  :: (Ptr RawTH2I) -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetContour" c_th2i_getcontour 
+  :: (Ptr RawTH2I) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH2I_GetContourLevel" c_th2i_getcontourlevel 
+  :: (Ptr RawTH2I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetContourLevelPad" c_th2i_getcontourlevelpad 
+  :: (Ptr RawTH2I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBin" c_th2i_getbin 
+  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2I_GetBinCenter" c_th2i_getbincenter 
+  :: (Ptr RawTH2I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBinContent1" c_th2i_getbincontent1 
+  :: (Ptr RawTH2I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBinContent2" c_th2i_getbincontent2 
+  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBinContent3" c_th2i_getbincontent3 
+  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBinError1" c_th2i_getbinerror1 
+  :: (Ptr RawTH2I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBinError2" c_th2i_getbinerror2 
+  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBinError3" c_th2i_getbinerror3 
+  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBinLowEdge" c_th2i_getbinlowedge 
+  :: (Ptr RawTH2I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetBinWidth" c_th2i_getbinwidth 
+  :: (Ptr RawTH2I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetCellContent" c_th2i_getcellcontent 
+  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_GetCellError" c_th2i_getcellerror 
+  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2I_SetTitle" c_th2i_settitle 
+  :: (Ptr RawTH2I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2I_SetLineColor" c_th2i_setlinecolor 
+  :: (Ptr RawTH2I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2I_SetFillColor" c_th2i_setfillcolor 
+  :: (Ptr RawTH2I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2I_SetFillStyle" c_th2i_setfillstyle 
+  :: (Ptr RawTH2I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2I_GetName" c_th2i_getname 
+  :: (Ptr RawTH2I) -> IO CString
+foreign import ccall "HROOT.h TH2I_Draw" c_th2i_draw 
+  :: (Ptr RawTH2I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2I_FindObject" c_th2i_findobject 
+  :: (Ptr RawTH2I) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH2I_SaveAs" c_th2i_saveas 
+  :: (Ptr RawTH2I) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2I_Write" c_th2i_write 
+  :: (Ptr RawTH2I) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2I_delete" c_th2i_delete 
+  :: (Ptr RawTH2I) -> IO ()
+
+foreign import ccall "HROOT.h TH2Poly_fill2" c_th2poly_fill2 
+  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_Add" c_th2poly_add 
+  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2Poly_AddBinContent" c_th2poly_addbincontent 
+  :: (Ptr RawTH2Poly) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2Poly_Chi2Test" c_th2poly_chi2test 
+  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_ComputeIntegral" c_th2poly_computeintegral 
+  :: (Ptr RawTH2Poly) -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_DirectoryAutoAdd" c_th2poly_directoryautoadd 
+  :: (Ptr RawTH2Poly) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH2Poly_DistancetoPrimitive" c_th2poly_distancetoprimitive 
+  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_Divide" c_th2poly_divide 
+  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH2Poly_DrawCopy" c_th2poly_drawcopy 
+  :: (Ptr RawTH2Poly) -> CString -> IO (Ptr RawTH2Poly)
+foreign import ccall "HROOT.h TH2Poly_DrawNormalized" c_th2poly_drawnormalized 
+  :: (Ptr RawTH2Poly) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2Poly_DrawPanel" c_th2poly_drawpanel 
+  :: (Ptr RawTH2Poly) -> IO ()
+foreign import ccall "HROOT.h TH2Poly_BufferEmpty" c_th2poly_bufferempty 
+  :: (Ptr RawTH2Poly) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_Eval" c_th2poly_eval 
+  :: (Ptr RawTH2Poly) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2Poly_ExecuteEvent" c_th2poly_executeevent 
+  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2Poly_FFT" c_th2poly_fft 
+  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2Poly_fill1" c_th2poly_fill1 
+  :: (Ptr RawTH2Poly) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_FillN" c_th2poly_filln 
+  :: (Ptr RawTH2Poly) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2Poly_FillRandom" c_th2poly_fillrandom 
+  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2Poly_FindBin" c_th2poly_findbin 
+  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_FindFixBin" c_th2poly_findfixbin 
+  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_FindFirstBinAbove" c_th2poly_findfirstbinabove 
+  :: (Ptr RawTH2Poly) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_FindLastBinAbove" c_th2poly_findlastbinabove 
+  :: (Ptr RawTH2Poly) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_FitPanel" c_th2poly_fitpanel 
+  :: (Ptr RawTH2Poly) -> IO ()
+foreign import ccall "HROOT.h TH2Poly_GetNdivisions" c_th2poly_getndivisions 
+  :: (Ptr RawTH2Poly) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_GetAxisColor" c_th2poly_getaxiscolor 
+  :: (Ptr RawTH2Poly) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_GetLabelColor" c_th2poly_getlabelcolor 
+  :: (Ptr RawTH2Poly) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_GetLabelFont" c_th2poly_getlabelfont 
+  :: (Ptr RawTH2Poly) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_GetLabelOffset" c_th2poly_getlabeloffset 
+  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetLabelSize" c_th2poly_getlabelsize 
+  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetTitleFont" c_th2poly_gettitlefont 
+  :: (Ptr RawTH2Poly) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_GetTitleOffset" c_th2poly_gettitleoffset 
+  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetTitleSize" c_th2poly_gettitlesize 
+  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetTickLength" c_th2poly_getticklength 
+  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBarOffset" c_th2poly_getbaroffset 
+  :: (Ptr RawTH2Poly) -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBarWidth" c_th2poly_getbarwidth 
+  :: (Ptr RawTH2Poly) -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetContour" c_th2poly_getcontour 
+  :: (Ptr RawTH2Poly) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_GetContourLevel" c_th2poly_getcontourlevel 
+  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetContourLevelPad" c_th2poly_getcontourlevelpad 
+  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBin" c_th2poly_getbin 
+  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_GetBinCenter" c_th2poly_getbincenter 
+  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBinContent1" c_th2poly_getbincontent1 
+  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBinContent2" c_th2poly_getbincontent2 
+  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBinContent3" c_th2poly_getbincontent3 
+  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBinError1" c_th2poly_getbinerror1 
+  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBinError2" c_th2poly_getbinerror2 
+  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBinError3" c_th2poly_getbinerror3 
+  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBinLowEdge" c_th2poly_getbinlowedge 
+  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetBinWidth" c_th2poly_getbinwidth 
+  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetCellContent" c_th2poly_getcellcontent 
+  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_GetCellError" c_th2poly_getcellerror 
+  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2Poly_SetTitle" c_th2poly_settitle 
+  :: (Ptr RawTH2Poly) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2Poly_SetLineColor" c_th2poly_setlinecolor 
+  :: (Ptr RawTH2Poly) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2Poly_SetFillColor" c_th2poly_setfillcolor 
+  :: (Ptr RawTH2Poly) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2Poly_SetFillStyle" c_th2poly_setfillstyle 
+  :: (Ptr RawTH2Poly) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2Poly_GetName" c_th2poly_getname 
+  :: (Ptr RawTH2Poly) -> IO CString
+foreign import ccall "HROOT.h TH2Poly_Draw" c_th2poly_draw 
+  :: (Ptr RawTH2Poly) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2Poly_FindObject" c_th2poly_findobject 
+  :: (Ptr RawTH2Poly) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH2Poly_SaveAs" c_th2poly_saveas 
+  :: (Ptr RawTH2Poly) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2Poly_Write" c_th2poly_write 
+  :: (Ptr RawTH2Poly) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_delete" c_th2poly_delete 
+  :: (Ptr RawTH2Poly) -> IO ()
+
+foreign import ccall "HROOT.h TH2S_fill2" c_th2s_fill2 
+  :: (Ptr RawTH2S) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2S_Add" c_th2s_add 
+  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2S_AddBinContent" c_th2s_addbincontent 
+  :: (Ptr RawTH2S) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2S_Chi2Test" c_th2s_chi2test 
+  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH2S_ComputeIntegral" c_th2s_computeintegral 
+  :: (Ptr RawTH2S) -> IO CDouble
+foreign import ccall "HROOT.h TH2S_DirectoryAutoAdd" c_th2s_directoryautoadd 
+  :: (Ptr RawTH2S) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH2S_DistancetoPrimitive" c_th2s_distancetoprimitive 
+  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2S_Divide" c_th2s_divide 
+  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH2S_DrawCopy" c_th2s_drawcopy 
+  :: (Ptr RawTH2S) -> CString -> IO (Ptr RawTH2S)
+foreign import ccall "HROOT.h TH2S_DrawNormalized" c_th2s_drawnormalized 
+  :: (Ptr RawTH2S) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2S_DrawPanel" c_th2s_drawpanel 
+  :: (Ptr RawTH2S) -> IO ()
+foreign import ccall "HROOT.h TH2S_BufferEmpty" c_th2s_bufferempty 
+  :: (Ptr RawTH2S) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2S_Eval" c_th2s_eval 
+  :: (Ptr RawTH2S) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2S_ExecuteEvent" c_th2s_executeevent 
+  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2S_FFT" c_th2s_fft 
+  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH2S_fill1" c_th2s_fill1 
+  :: (Ptr RawTH2S) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2S_FillN" c_th2s_filln 
+  :: (Ptr RawTH2S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2S_FillRandom" c_th2s_fillrandom 
+  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2S_FindBin" c_th2s_findbin 
+  :: (Ptr RawTH2S) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2S_FindFixBin" c_th2s_findfixbin 
+  :: (Ptr RawTH2S) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2S_FindFirstBinAbove" c_th2s_findfirstbinabove 
+  :: (Ptr RawTH2S) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2S_FindLastBinAbove" c_th2s_findlastbinabove 
+  :: (Ptr RawTH2S) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2S_FitPanel" c_th2s_fitpanel 
+  :: (Ptr RawTH2S) -> IO ()
+foreign import ccall "HROOT.h TH2S_GetNdivisions" c_th2s_getndivisions 
+  :: (Ptr RawTH2S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2S_GetAxisColor" c_th2s_getaxiscolor 
+  :: (Ptr RawTH2S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2S_GetLabelColor" c_th2s_getlabelcolor 
+  :: (Ptr RawTH2S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2S_GetLabelFont" c_th2s_getlabelfont 
+  :: (Ptr RawTH2S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2S_GetLabelOffset" c_th2s_getlabeloffset 
+  :: (Ptr RawTH2S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetLabelSize" c_th2s_getlabelsize 
+  :: (Ptr RawTH2S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetTitleFont" c_th2s_gettitlefont 
+  :: (Ptr RawTH2S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH2S_GetTitleOffset" c_th2s_gettitleoffset 
+  :: (Ptr RawTH2S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetTitleSize" c_th2s_gettitlesize 
+  :: (Ptr RawTH2S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetTickLength" c_th2s_getticklength 
+  :: (Ptr RawTH2S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBarOffset" c_th2s_getbaroffset 
+  :: (Ptr RawTH2S) -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBarWidth" c_th2s_getbarwidth 
+  :: (Ptr RawTH2S) -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetContour" c_th2s_getcontour 
+  :: (Ptr RawTH2S) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH2S_GetContourLevel" c_th2s_getcontourlevel 
+  :: (Ptr RawTH2S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetContourLevelPad" c_th2s_getcontourlevelpad 
+  :: (Ptr RawTH2S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBin" c_th2s_getbin 
+  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2S_GetBinCenter" c_th2s_getbincenter 
+  :: (Ptr RawTH2S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBinContent1" c_th2s_getbincontent1 
+  :: (Ptr RawTH2S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBinContent2" c_th2s_getbincontent2 
+  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBinContent3" c_th2s_getbincontent3 
+  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBinError1" c_th2s_getbinerror1 
+  :: (Ptr RawTH2S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBinError2" c_th2s_getbinerror2 
+  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBinError3" c_th2s_getbinerror3 
+  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBinLowEdge" c_th2s_getbinlowedge 
+  :: (Ptr RawTH2S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetBinWidth" c_th2s_getbinwidth 
+  :: (Ptr RawTH2S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetCellContent" c_th2s_getcellcontent 
+  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_GetCellError" c_th2s_getcellerror 
+  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH2S_SetTitle" c_th2s_settitle 
+  :: (Ptr RawTH2S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2S_SetLineColor" c_th2s_setlinecolor 
+  :: (Ptr RawTH2S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2S_SetFillColor" c_th2s_setfillcolor 
+  :: (Ptr RawTH2S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2S_SetFillStyle" c_th2s_setfillstyle 
+  :: (Ptr RawTH2S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2S_GetName" c_th2s_getname 
+  :: (Ptr RawTH2S) -> IO CString
+foreign import ccall "HROOT.h TH2S_Draw" c_th2s_draw 
+  :: (Ptr RawTH2S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2S_FindObject" c_th2s_findobject 
+  :: (Ptr RawTH2S) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH2S_SaveAs" c_th2s_saveas 
+  :: (Ptr RawTH2S) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2S_Write" c_th2s_write 
+  :: (Ptr RawTH2S) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2S_delete" c_th2s_delete 
+  :: (Ptr RawTH2S) -> IO ()
+
+foreign import ccall "HROOT.h TH3C_Add" c_th3c_add 
+  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3C_AddBinContent" c_th3c_addbincontent 
+  :: (Ptr RawTH3C) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3C_Chi2Test" c_th3c_chi2test 
+  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH3C_ComputeIntegral" c_th3c_computeintegral 
+  :: (Ptr RawTH3C) -> IO CDouble
+foreign import ccall "HROOT.h TH3C_DirectoryAutoAdd" c_th3c_directoryautoadd 
+  :: (Ptr RawTH3C) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH3C_DistancetoPrimitive" c_th3c_distancetoprimitive 
+  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3C_Divide" c_th3c_divide 
+  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH3C_DrawCopy" c_th3c_drawcopy 
+  :: (Ptr RawTH3C) -> CString -> IO (Ptr RawTH3C)
+foreign import ccall "HROOT.h TH3C_DrawNormalized" c_th3c_drawnormalized 
+  :: (Ptr RawTH3C) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3C_DrawPanel" c_th3c_drawpanel 
+  :: (Ptr RawTH3C) -> IO ()
+foreign import ccall "HROOT.h TH3C_BufferEmpty" c_th3c_bufferempty 
+  :: (Ptr RawTH3C) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3C_Eval" c_th3c_eval 
+  :: (Ptr RawTH3C) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3C_ExecuteEvent" c_th3c_executeevent 
+  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3C_FFT" c_th3c_fft 
+  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3C_fill1" c_th3c_fill1 
+  :: (Ptr RawTH3C) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3C_FillN" c_th3c_filln 
+  :: (Ptr RawTH3C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3C_FillRandom" c_th3c_fillrandom 
+  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3C_FindBin" c_th3c_findbin 
+  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3C_FindFixBin" c_th3c_findfixbin 
+  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3C_FindFirstBinAbove" c_th3c_findfirstbinabove 
+  :: (Ptr RawTH3C) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3C_FindLastBinAbove" c_th3c_findlastbinabove 
+  :: (Ptr RawTH3C) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3C_FitPanel" c_th3c_fitpanel 
+  :: (Ptr RawTH3C) -> IO ()
+foreign import ccall "HROOT.h TH3C_GetNdivisions" c_th3c_getndivisions 
+  :: (Ptr RawTH3C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3C_GetAxisColor" c_th3c_getaxiscolor 
+  :: (Ptr RawTH3C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3C_GetLabelColor" c_th3c_getlabelcolor 
+  :: (Ptr RawTH3C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3C_GetLabelFont" c_th3c_getlabelfont 
+  :: (Ptr RawTH3C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3C_GetLabelOffset" c_th3c_getlabeloffset 
+  :: (Ptr RawTH3C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetLabelSize" c_th3c_getlabelsize 
+  :: (Ptr RawTH3C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetTitleFont" c_th3c_gettitlefont 
+  :: (Ptr RawTH3C) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3C_GetTitleOffset" c_th3c_gettitleoffset 
+  :: (Ptr RawTH3C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetTitleSize" c_th3c_gettitlesize 
+  :: (Ptr RawTH3C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetTickLength" c_th3c_getticklength 
+  :: (Ptr RawTH3C) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBarOffset" c_th3c_getbaroffset 
+  :: (Ptr RawTH3C) -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBarWidth" c_th3c_getbarwidth 
+  :: (Ptr RawTH3C) -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetContour" c_th3c_getcontour 
+  :: (Ptr RawTH3C) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH3C_GetContourLevel" c_th3c_getcontourlevel 
+  :: (Ptr RawTH3C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetContourLevelPad" c_th3c_getcontourlevelpad 
+  :: (Ptr RawTH3C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBin" c_th3c_getbin 
+  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3C_GetBinCenter" c_th3c_getbincenter 
+  :: (Ptr RawTH3C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBinContent1" c_th3c_getbincontent1 
+  :: (Ptr RawTH3C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBinContent2" c_th3c_getbincontent2 
+  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBinContent3" c_th3c_getbincontent3 
+  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBinError1" c_th3c_getbinerror1 
+  :: (Ptr RawTH3C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBinError2" c_th3c_getbinerror2 
+  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBinError3" c_th3c_getbinerror3 
+  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBinLowEdge" c_th3c_getbinlowedge 
+  :: (Ptr RawTH3C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetBinWidth" c_th3c_getbinwidth 
+  :: (Ptr RawTH3C) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetCellContent" c_th3c_getcellcontent 
+  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_GetCellError" c_th3c_getcellerror 
+  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3C_SetTitle" c_th3c_settitle 
+  :: (Ptr RawTH3C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3C_SetLineColor" c_th3c_setlinecolor 
+  :: (Ptr RawTH3C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3C_SetFillColor" c_th3c_setfillcolor 
+  :: (Ptr RawTH3C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3C_SetFillStyle" c_th3c_setfillstyle 
+  :: (Ptr RawTH3C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3C_GetName" c_th3c_getname 
+  :: (Ptr RawTH3C) -> IO CString
+foreign import ccall "HROOT.h TH3C_Draw" c_th3c_draw 
+  :: (Ptr RawTH3C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3C_FindObject" c_th3c_findobject 
+  :: (Ptr RawTH3C) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH3C_SaveAs" c_th3c_saveas 
+  :: (Ptr RawTH3C) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3C_Write" c_th3c_write 
+  :: (Ptr RawTH3C) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3C_delete" c_th3c_delete 
+  :: (Ptr RawTH3C) -> IO ()
+
+foreign import ccall "HROOT.h TH3D_Add" c_th3d_add 
+  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3D_AddBinContent" c_th3d_addbincontent 
+  :: (Ptr RawTH3D) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3D_Chi2Test" c_th3d_chi2test 
+  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH3D_ComputeIntegral" c_th3d_computeintegral 
+  :: (Ptr RawTH3D) -> IO CDouble
+foreign import ccall "HROOT.h TH3D_DirectoryAutoAdd" c_th3d_directoryautoadd 
+  :: (Ptr RawTH3D) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH3D_DistancetoPrimitive" c_th3d_distancetoprimitive 
+  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3D_Divide" c_th3d_divide 
+  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH3D_DrawCopy" c_th3d_drawcopy 
+  :: (Ptr RawTH3D) -> CString -> IO (Ptr RawTH3D)
+foreign import ccall "HROOT.h TH3D_DrawNormalized" c_th3d_drawnormalized 
+  :: (Ptr RawTH3D) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3D_DrawPanel" c_th3d_drawpanel 
+  :: (Ptr RawTH3D) -> IO ()
+foreign import ccall "HROOT.h TH3D_BufferEmpty" c_th3d_bufferempty 
+  :: (Ptr RawTH3D) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3D_Eval" c_th3d_eval 
+  :: (Ptr RawTH3D) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3D_ExecuteEvent" c_th3d_executeevent 
+  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3D_FFT" c_th3d_fft 
+  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3D_fill1" c_th3d_fill1 
+  :: (Ptr RawTH3D) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3D_FillN" c_th3d_filln 
+  :: (Ptr RawTH3D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3D_FillRandom" c_th3d_fillrandom 
+  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3D_FindBin" c_th3d_findbin 
+  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3D_FindFixBin" c_th3d_findfixbin 
+  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3D_FindFirstBinAbove" c_th3d_findfirstbinabove 
+  :: (Ptr RawTH3D) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3D_FindLastBinAbove" c_th3d_findlastbinabove 
+  :: (Ptr RawTH3D) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3D_FitPanel" c_th3d_fitpanel 
+  :: (Ptr RawTH3D) -> IO ()
+foreign import ccall "HROOT.h TH3D_GetNdivisions" c_th3d_getndivisions 
+  :: (Ptr RawTH3D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3D_GetAxisColor" c_th3d_getaxiscolor 
+  :: (Ptr RawTH3D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3D_GetLabelColor" c_th3d_getlabelcolor 
+  :: (Ptr RawTH3D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3D_GetLabelFont" c_th3d_getlabelfont 
+  :: (Ptr RawTH3D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3D_GetLabelOffset" c_th3d_getlabeloffset 
+  :: (Ptr RawTH3D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetLabelSize" c_th3d_getlabelsize 
+  :: (Ptr RawTH3D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetTitleFont" c_th3d_gettitlefont 
+  :: (Ptr RawTH3D) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3D_GetTitleOffset" c_th3d_gettitleoffset 
+  :: (Ptr RawTH3D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetTitleSize" c_th3d_gettitlesize 
+  :: (Ptr RawTH3D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetTickLength" c_th3d_getticklength 
+  :: (Ptr RawTH3D) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBarOffset" c_th3d_getbaroffset 
+  :: (Ptr RawTH3D) -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBarWidth" c_th3d_getbarwidth 
+  :: (Ptr RawTH3D) -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetContour" c_th3d_getcontour 
+  :: (Ptr RawTH3D) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH3D_GetContourLevel" c_th3d_getcontourlevel 
+  :: (Ptr RawTH3D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetContourLevelPad" c_th3d_getcontourlevelpad 
+  :: (Ptr RawTH3D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBin" c_th3d_getbin 
+  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3D_GetBinCenter" c_th3d_getbincenter 
+  :: (Ptr RawTH3D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBinContent1" c_th3d_getbincontent1 
+  :: (Ptr RawTH3D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBinContent2" c_th3d_getbincontent2 
+  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBinContent3" c_th3d_getbincontent3 
+  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBinError1" c_th3d_getbinerror1 
+  :: (Ptr RawTH3D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBinError2" c_th3d_getbinerror2 
+  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBinError3" c_th3d_getbinerror3 
+  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBinLowEdge" c_th3d_getbinlowedge 
+  :: (Ptr RawTH3D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetBinWidth" c_th3d_getbinwidth 
+  :: (Ptr RawTH3D) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetCellContent" c_th3d_getcellcontent 
+  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_GetCellError" c_th3d_getcellerror 
+  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3D_SetTitle" c_th3d_settitle 
+  :: (Ptr RawTH3D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3D_SetLineColor" c_th3d_setlinecolor 
+  :: (Ptr RawTH3D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3D_SetFillColor" c_th3d_setfillcolor 
+  :: (Ptr RawTH3D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3D_SetFillStyle" c_th3d_setfillstyle 
+  :: (Ptr RawTH3D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3D_GetName" c_th3d_getname 
+  :: (Ptr RawTH3D) -> IO CString
+foreign import ccall "HROOT.h TH3D_Draw" c_th3d_draw 
+  :: (Ptr RawTH3D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3D_FindObject" c_th3d_findobject 
+  :: (Ptr RawTH3D) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH3D_SaveAs" c_th3d_saveas 
+  :: (Ptr RawTH3D) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3D_Write" c_th3d_write 
+  :: (Ptr RawTH3D) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3D_delete" c_th3d_delete 
+  :: (Ptr RawTH3D) -> IO ()
+
+foreign import ccall "HROOT.h TH3F_Add" c_th3f_add 
+  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3F_AddBinContent" c_th3f_addbincontent 
+  :: (Ptr RawTH3F) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3F_Chi2Test" c_th3f_chi2test 
+  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH3F_ComputeIntegral" c_th3f_computeintegral 
+  :: (Ptr RawTH3F) -> IO CDouble
+foreign import ccall "HROOT.h TH3F_DirectoryAutoAdd" c_th3f_directoryautoadd 
+  :: (Ptr RawTH3F) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH3F_DistancetoPrimitive" c_th3f_distancetoprimitive 
+  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3F_Divide" c_th3f_divide 
+  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH3F_DrawCopy" c_th3f_drawcopy 
+  :: (Ptr RawTH3F) -> CString -> IO (Ptr RawTH3F)
+foreign import ccall "HROOT.h TH3F_DrawNormalized" c_th3f_drawnormalized 
+  :: (Ptr RawTH3F) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3F_DrawPanel" c_th3f_drawpanel 
+  :: (Ptr RawTH3F) -> IO ()
+foreign import ccall "HROOT.h TH3F_BufferEmpty" c_th3f_bufferempty 
+  :: (Ptr RawTH3F) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3F_Eval" c_th3f_eval 
+  :: (Ptr RawTH3F) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3F_ExecuteEvent" c_th3f_executeevent 
+  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3F_FFT" c_th3f_fft 
+  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3F_fill1" c_th3f_fill1 
+  :: (Ptr RawTH3F) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3F_FillN" c_th3f_filln 
+  :: (Ptr RawTH3F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3F_FillRandom" c_th3f_fillrandom 
+  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3F_FindBin" c_th3f_findbin 
+  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3F_FindFixBin" c_th3f_findfixbin 
+  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3F_FindFirstBinAbove" c_th3f_findfirstbinabove 
+  :: (Ptr RawTH3F) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3F_FindLastBinAbove" c_th3f_findlastbinabove 
+  :: (Ptr RawTH3F) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3F_FitPanel" c_th3f_fitpanel 
+  :: (Ptr RawTH3F) -> IO ()
+foreign import ccall "HROOT.h TH3F_GetNdivisions" c_th3f_getndivisions 
+  :: (Ptr RawTH3F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3F_GetAxisColor" c_th3f_getaxiscolor 
+  :: (Ptr RawTH3F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3F_GetLabelColor" c_th3f_getlabelcolor 
+  :: (Ptr RawTH3F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3F_GetLabelFont" c_th3f_getlabelfont 
+  :: (Ptr RawTH3F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3F_GetLabelOffset" c_th3f_getlabeloffset 
+  :: (Ptr RawTH3F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetLabelSize" c_th3f_getlabelsize 
+  :: (Ptr RawTH3F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetTitleFont" c_th3f_gettitlefont 
+  :: (Ptr RawTH3F) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3F_GetTitleOffset" c_th3f_gettitleoffset 
+  :: (Ptr RawTH3F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetTitleSize" c_th3f_gettitlesize 
+  :: (Ptr RawTH3F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetTickLength" c_th3f_getticklength 
+  :: (Ptr RawTH3F) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBarOffset" c_th3f_getbaroffset 
+  :: (Ptr RawTH3F) -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBarWidth" c_th3f_getbarwidth 
+  :: (Ptr RawTH3F) -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetContour" c_th3f_getcontour 
+  :: (Ptr RawTH3F) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH3F_GetContourLevel" c_th3f_getcontourlevel 
+  :: (Ptr RawTH3F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetContourLevelPad" c_th3f_getcontourlevelpad 
+  :: (Ptr RawTH3F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBin" c_th3f_getbin 
+  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3F_GetBinCenter" c_th3f_getbincenter 
+  :: (Ptr RawTH3F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBinContent1" c_th3f_getbincontent1 
+  :: (Ptr RawTH3F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBinContent2" c_th3f_getbincontent2 
+  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBinContent3" c_th3f_getbincontent3 
+  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBinError1" c_th3f_getbinerror1 
+  :: (Ptr RawTH3F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBinError2" c_th3f_getbinerror2 
+  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBinError3" c_th3f_getbinerror3 
+  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBinLowEdge" c_th3f_getbinlowedge 
+  :: (Ptr RawTH3F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetBinWidth" c_th3f_getbinwidth 
+  :: (Ptr RawTH3F) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetCellContent" c_th3f_getcellcontent 
+  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_GetCellError" c_th3f_getcellerror 
+  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3F_SetTitle" c_th3f_settitle 
+  :: (Ptr RawTH3F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3F_SetLineColor" c_th3f_setlinecolor 
+  :: (Ptr RawTH3F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3F_SetFillColor" c_th3f_setfillcolor 
+  :: (Ptr RawTH3F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3F_SetFillStyle" c_th3f_setfillstyle 
+  :: (Ptr RawTH3F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3F_GetName" c_th3f_getname 
+  :: (Ptr RawTH3F) -> IO CString
+foreign import ccall "HROOT.h TH3F_Draw" c_th3f_draw 
+  :: (Ptr RawTH3F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3F_FindObject" c_th3f_findobject 
+  :: (Ptr RawTH3F) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH3F_SaveAs" c_th3f_saveas 
+  :: (Ptr RawTH3F) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3F_Write" c_th3f_write 
+  :: (Ptr RawTH3F) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3F_delete" c_th3f_delete 
+  :: (Ptr RawTH3F) -> IO ()
+
+foreign import ccall "HROOT.h TH3I_Add" c_th3i_add 
+  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3I_AddBinContent" c_th3i_addbincontent 
+  :: (Ptr RawTH3I) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3I_Chi2Test" c_th3i_chi2test 
+  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH3I_ComputeIntegral" c_th3i_computeintegral 
+  :: (Ptr RawTH3I) -> IO CDouble
+foreign import ccall "HROOT.h TH3I_DirectoryAutoAdd" c_th3i_directoryautoadd 
+  :: (Ptr RawTH3I) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH3I_DistancetoPrimitive" c_th3i_distancetoprimitive 
+  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3I_Divide" c_th3i_divide 
+  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH3I_DrawCopy" c_th3i_drawcopy 
+  :: (Ptr RawTH3I) -> CString -> IO (Ptr RawTH3I)
+foreign import ccall "HROOT.h TH3I_DrawNormalized" c_th3i_drawnormalized 
+  :: (Ptr RawTH3I) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3I_DrawPanel" c_th3i_drawpanel 
+  :: (Ptr RawTH3I) -> IO ()
+foreign import ccall "HROOT.h TH3I_BufferEmpty" c_th3i_bufferempty 
+  :: (Ptr RawTH3I) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3I_Eval" c_th3i_eval 
+  :: (Ptr RawTH3I) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3I_ExecuteEvent" c_th3i_executeevent 
+  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3I_FFT" c_th3i_fft 
+  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3I_fill1" c_th3i_fill1 
+  :: (Ptr RawTH3I) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3I_FillN" c_th3i_filln 
+  :: (Ptr RawTH3I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3I_FillRandom" c_th3i_fillrandom 
+  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3I_FindBin" c_th3i_findbin 
+  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3I_FindFixBin" c_th3i_findfixbin 
+  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3I_FindFirstBinAbove" c_th3i_findfirstbinabove 
+  :: (Ptr RawTH3I) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3I_FindLastBinAbove" c_th3i_findlastbinabove 
+  :: (Ptr RawTH3I) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3I_FitPanel" c_th3i_fitpanel 
+  :: (Ptr RawTH3I) -> IO ()
+foreign import ccall "HROOT.h TH3I_GetNdivisions" c_th3i_getndivisions 
+  :: (Ptr RawTH3I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3I_GetAxisColor" c_th3i_getaxiscolor 
+  :: (Ptr RawTH3I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3I_GetLabelColor" c_th3i_getlabelcolor 
+  :: (Ptr RawTH3I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3I_GetLabelFont" c_th3i_getlabelfont 
+  :: (Ptr RawTH3I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3I_GetLabelOffset" c_th3i_getlabeloffset 
+  :: (Ptr RawTH3I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetLabelSize" c_th3i_getlabelsize 
+  :: (Ptr RawTH3I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetTitleFont" c_th3i_gettitlefont 
+  :: (Ptr RawTH3I) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3I_GetTitleOffset" c_th3i_gettitleoffset 
+  :: (Ptr RawTH3I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetTitleSize" c_th3i_gettitlesize 
+  :: (Ptr RawTH3I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetTickLength" c_th3i_getticklength 
+  :: (Ptr RawTH3I) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBarOffset" c_th3i_getbaroffset 
+  :: (Ptr RawTH3I) -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBarWidth" c_th3i_getbarwidth 
+  :: (Ptr RawTH3I) -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetContour" c_th3i_getcontour 
+  :: (Ptr RawTH3I) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH3I_GetContourLevel" c_th3i_getcontourlevel 
+  :: (Ptr RawTH3I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetContourLevelPad" c_th3i_getcontourlevelpad 
+  :: (Ptr RawTH3I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBin" c_th3i_getbin 
+  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3I_GetBinCenter" c_th3i_getbincenter 
+  :: (Ptr RawTH3I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBinContent1" c_th3i_getbincontent1 
+  :: (Ptr RawTH3I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBinContent2" c_th3i_getbincontent2 
+  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBinContent3" c_th3i_getbincontent3 
+  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBinError1" c_th3i_getbinerror1 
+  :: (Ptr RawTH3I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBinError2" c_th3i_getbinerror2 
+  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBinError3" c_th3i_getbinerror3 
+  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBinLowEdge" c_th3i_getbinlowedge 
+  :: (Ptr RawTH3I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetBinWidth" c_th3i_getbinwidth 
+  :: (Ptr RawTH3I) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetCellContent" c_th3i_getcellcontent 
+  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_GetCellError" c_th3i_getcellerror 
+  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3I_SetTitle" c_th3i_settitle 
+  :: (Ptr RawTH3I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3I_SetLineColor" c_th3i_setlinecolor 
+  :: (Ptr RawTH3I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3I_SetFillColor" c_th3i_setfillcolor 
+  :: (Ptr RawTH3I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3I_SetFillStyle" c_th3i_setfillstyle 
+  :: (Ptr RawTH3I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3I_GetName" c_th3i_getname 
+  :: (Ptr RawTH3I) -> IO CString
+foreign import ccall "HROOT.h TH3I_Draw" c_th3i_draw 
+  :: (Ptr RawTH3I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3I_FindObject" c_th3i_findobject 
+  :: (Ptr RawTH3I) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH3I_SaveAs" c_th3i_saveas 
+  :: (Ptr RawTH3I) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3I_Write" c_th3i_write 
+  :: (Ptr RawTH3I) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3I_delete" c_th3i_delete 
+  :: (Ptr RawTH3I) -> IO ()
+
+foreign import ccall "HROOT.h TH3S_Add" c_th3s_add 
+  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3S_AddBinContent" c_th3s_addbincontent 
+  :: (Ptr RawTH3S) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3S_Chi2Test" c_th3s_chi2test 
+  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
+foreign import ccall "HROOT.h TH3S_ComputeIntegral" c_th3s_computeintegral 
+  :: (Ptr RawTH3S) -> IO CDouble
+foreign import ccall "HROOT.h TH3S_DirectoryAutoAdd" c_th3s_directoryautoadd 
+  :: (Ptr RawTH3S) -> (Ptr RawTDirectory) -> IO ()
+foreign import ccall "HROOT.h TH3S_DistancetoPrimitive" c_th3s_distancetoprimitive 
+  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3S_Divide" c_th3s_divide 
+  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
+foreign import ccall "HROOT.h TH3S_DrawCopy" c_th3s_drawcopy 
+  :: (Ptr RawTH3S) -> CString -> IO (Ptr RawTH3S)
+foreign import ccall "HROOT.h TH3S_DrawNormalized" c_th3s_drawnormalized 
+  :: (Ptr RawTH3S) -> CString -> CDouble -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3S_DrawPanel" c_th3s_drawpanel 
+  :: (Ptr RawTH3S) -> IO ()
+foreign import ccall "HROOT.h TH3S_BufferEmpty" c_th3s_bufferempty 
+  :: (Ptr RawTH3S) -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3S_Eval" c_th3s_eval 
+  :: (Ptr RawTH3S) -> (Ptr RawTF1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3S_ExecuteEvent" c_th3s_executeevent 
+  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3S_FFT" c_th3s_fft 
+  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
+foreign import ccall "HROOT.h TH3S_fill1" c_th3s_fill1 
+  :: (Ptr RawTH3S) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3S_FillN" c_th3s_filln 
+  :: (Ptr RawTH3S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3S_FillRandom" c_th3s_fillrandom 
+  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3S_FindBin" c_th3s_findbin 
+  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3S_FindFixBin" c_th3s_findfixbin 
+  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3S_FindFirstBinAbove" c_th3s_findfirstbinabove 
+  :: (Ptr RawTH3S) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3S_FindLastBinAbove" c_th3s_findlastbinabove 
+  :: (Ptr RawTH3S) -> CDouble -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3S_FitPanel" c_th3s_fitpanel 
+  :: (Ptr RawTH3S) -> IO ()
+foreign import ccall "HROOT.h TH3S_GetNdivisions" c_th3s_getndivisions 
+  :: (Ptr RawTH3S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3S_GetAxisColor" c_th3s_getaxiscolor 
+  :: (Ptr RawTH3S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3S_GetLabelColor" c_th3s_getlabelcolor 
+  :: (Ptr RawTH3S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3S_GetLabelFont" c_th3s_getlabelfont 
+  :: (Ptr RawTH3S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3S_GetLabelOffset" c_th3s_getlabeloffset 
+  :: (Ptr RawTH3S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetLabelSize" c_th3s_getlabelsize 
+  :: (Ptr RawTH3S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetTitleFont" c_th3s_gettitlefont 
+  :: (Ptr RawTH3S) -> CString -> IO CInt
+foreign import ccall "HROOT.h TH3S_GetTitleOffset" c_th3s_gettitleoffset 
+  :: (Ptr RawTH3S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetTitleSize" c_th3s_gettitlesize 
+  :: (Ptr RawTH3S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetTickLength" c_th3s_getticklength 
+  :: (Ptr RawTH3S) -> CString -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBarOffset" c_th3s_getbaroffset 
+  :: (Ptr RawTH3S) -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBarWidth" c_th3s_getbarwidth 
+  :: (Ptr RawTH3S) -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetContour" c_th3s_getcontour 
+  :: (Ptr RawTH3S) -> (Ptr CDouble) -> IO CInt
+foreign import ccall "HROOT.h TH3S_GetContourLevel" c_th3s_getcontourlevel 
+  :: (Ptr RawTH3S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetContourLevelPad" c_th3s_getcontourlevelpad 
+  :: (Ptr RawTH3S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBin" c_th3s_getbin 
+  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3S_GetBinCenter" c_th3s_getbincenter 
+  :: (Ptr RawTH3S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBinContent1" c_th3s_getbincontent1 
+  :: (Ptr RawTH3S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBinContent2" c_th3s_getbincontent2 
+  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBinContent3" c_th3s_getbincontent3 
+  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBinError1" c_th3s_getbinerror1 
+  :: (Ptr RawTH3S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBinError2" c_th3s_getbinerror2 
+  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBinError3" c_th3s_getbinerror3 
+  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBinLowEdge" c_th3s_getbinlowedge 
+  :: (Ptr RawTH3S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetBinWidth" c_th3s_getbinwidth 
+  :: (Ptr RawTH3S) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetCellContent" c_th3s_getcellcontent 
+  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_GetCellError" c_th3s_getcellerror 
+  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TH3S_SetTitle" c_th3s_settitle 
+  :: (Ptr RawTH3S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3S_SetLineColor" c_th3s_setlinecolor 
+  :: (Ptr RawTH3S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3S_SetFillColor" c_th3s_setfillcolor 
+  :: (Ptr RawTH3S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3S_SetFillStyle" c_th3s_setfillstyle 
+  :: (Ptr RawTH3S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3S_GetName" c_th3s_getname 
+  :: (Ptr RawTH3S) -> IO CString
+foreign import ccall "HROOT.h TH3S_Draw" c_th3s_draw 
+  :: (Ptr RawTH3S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3S_FindObject" c_th3s_findobject 
+  :: (Ptr RawTH3S) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TH3S_SaveAs" c_th3s_saveas 
+  :: (Ptr RawTH3S) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3S_Write" c_th3s_write 
+  :: (Ptr RawTH3S) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH3S_delete" c_th3s_delete 
+  :: (Ptr RawTH3S) -> IO ()
+
+foreign import ccall "HROOT.h TQObject_delete" c_tqobject_delete 
+  :: (Ptr RawTQObject) -> IO ()
+
+foreign import ccall "HROOT.h TVirtualPad_GetName" c_tvirtualpad_getname 
+  :: (Ptr RawTVirtualPad) -> IO CString
+foreign import ccall "HROOT.h TVirtualPad_Draw" c_tvirtualpad_draw 
+  :: (Ptr RawTVirtualPad) -> CString -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_FindObject" c_tvirtualpad_findobject 
+  :: (Ptr RawTVirtualPad) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TVirtualPad_SaveAs" c_tvirtualpad_saveas 
+  :: (Ptr RawTVirtualPad) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_Write" c_tvirtualpad_write 
+  :: (Ptr RawTVirtualPad) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TVirtualPad_SetLineColor" c_tvirtualpad_setlinecolor 
+  :: (Ptr RawTVirtualPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_SetFillColor" c_tvirtualpad_setfillcolor 
+  :: (Ptr RawTVirtualPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_SetFillStyle" c_tvirtualpad_setfillstyle 
+  :: (Ptr RawTVirtualPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_delete" c_tvirtualpad_delete 
+  :: (Ptr RawTVirtualPad) -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_GetFrame" c_tvirtualpad_getframe 
+  :: (Ptr RawTVirtualPad) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TVirtualPad_Range" c_tvirtualpad_range 
+  :: (Ptr RawTVirtualPad) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+
+foreign import ccall "HROOT.h TPad_GetFrame" c_tpad_getframe 
+  :: (Ptr RawTPad) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TPad_Range" c_tpad_range 
+  :: (Ptr RawTPad) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPad_GetName" c_tpad_getname 
+  :: (Ptr RawTPad) -> IO CString
+foreign import ccall "HROOT.h TPad_Draw" c_tpad_draw 
+  :: (Ptr RawTPad) -> CString -> IO ()
+foreign import ccall "HROOT.h TPad_FindObject" c_tpad_findobject 
+  :: (Ptr RawTPad) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TPad_SaveAs" c_tpad_saveas 
+  :: (Ptr RawTPad) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPad_Write" c_tpad_write 
+  :: (Ptr RawTPad) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPad_SetLineColor" c_tpad_setlinecolor 
+  :: (Ptr RawTPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPad_SetFillColor" c_tpad_setfillcolor 
+  :: (Ptr RawTPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPad_SetFillStyle" c_tpad_setfillstyle 
+  :: (Ptr RawTPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPad_delete" c_tpad_delete 
+  :: (Ptr RawTPad) -> IO ()
+
+foreign import ccall "HROOT.h TButton_SetTextColor" c_tbutton_settextcolor 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TButton_SetTextAlign" c_tbutton_settextalign 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TButton_SetTextSize" c_tbutton_settextsize 
+  :: (Ptr RawTButton) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TButton_GetFrame" c_tbutton_getframe 
+  :: (Ptr RawTButton) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TButton_Range" c_tbutton_range 
+  :: (Ptr RawTButton) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TButton_GetName" c_tbutton_getname 
+  :: (Ptr RawTButton) -> IO CString
+foreign import ccall "HROOT.h TButton_Draw" c_tbutton_draw 
+  :: (Ptr RawTButton) -> CString -> IO ()
+foreign import ccall "HROOT.h TButton_FindObject" c_tbutton_findobject 
+  :: (Ptr RawTButton) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TButton_SaveAs" c_tbutton_saveas 
+  :: (Ptr RawTButton) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TButton_Write" c_tbutton_write 
+  :: (Ptr RawTButton) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TButton_SetLineColor" c_tbutton_setlinecolor 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TButton_SetFillColor" c_tbutton_setfillcolor 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TButton_SetFillStyle" c_tbutton_setfillstyle 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TButton_delete" c_tbutton_delete 
+  :: (Ptr RawTButton) -> IO ()
+
+foreign import ccall "HROOT.h TGroupButton_SetTextColor" c_tgroupbutton_settextcolor 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGroupButton_SetTextAlign" c_tgroupbutton_settextalign 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGroupButton_SetTextSize" c_tgroupbutton_settextsize 
+  :: (Ptr RawTGroupButton) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TGroupButton_GetFrame" c_tgroupbutton_getframe 
+  :: (Ptr RawTGroupButton) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TGroupButton_Range" c_tgroupbutton_range 
+  :: (Ptr RawTGroupButton) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TGroupButton_GetName" c_tgroupbutton_getname 
+  :: (Ptr RawTGroupButton) -> IO CString
+foreign import ccall "HROOT.h TGroupButton_Draw" c_tgroupbutton_draw 
+  :: (Ptr RawTGroupButton) -> CString -> IO ()
+foreign import ccall "HROOT.h TGroupButton_FindObject" c_tgroupbutton_findobject 
+  :: (Ptr RawTGroupButton) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TGroupButton_SaveAs" c_tgroupbutton_saveas 
+  :: (Ptr RawTGroupButton) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGroupButton_Write" c_tgroupbutton_write 
+  :: (Ptr RawTGroupButton) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGroupButton_SetLineColor" c_tgroupbutton_setlinecolor 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGroupButton_SetFillColor" c_tgroupbutton_setfillcolor 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGroupButton_SetFillStyle" c_tgroupbutton_setfillstyle 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGroupButton_delete" c_tgroupbutton_delete 
+  :: (Ptr RawTGroupButton) -> IO ()
+
+foreign import ccall "HROOT.h TCanvas_GetFrame" c_tcanvas_getframe 
+  :: (Ptr RawTCanvas) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TCanvas_Range" c_tcanvas_range 
+  :: (Ptr RawTCanvas) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TCanvas_GetName" c_tcanvas_getname 
+  :: (Ptr RawTCanvas) -> IO CString
+foreign import ccall "HROOT.h TCanvas_Draw" c_tcanvas_draw 
+  :: (Ptr RawTCanvas) -> CString -> IO ()
+foreign import ccall "HROOT.h TCanvas_FindObject" c_tcanvas_findobject 
+  :: (Ptr RawTCanvas) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TCanvas_SaveAs" c_tcanvas_saveas 
+  :: (Ptr RawTCanvas) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCanvas_Write" c_tcanvas_write 
+  :: (Ptr RawTCanvas) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCanvas_SetLineColor" c_tcanvas_setlinecolor 
+  :: (Ptr RawTCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCanvas_SetFillColor" c_tcanvas_setfillcolor 
+  :: (Ptr RawTCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCanvas_SetFillStyle" c_tcanvas_setfillstyle 
+  :: (Ptr RawTCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCanvas_delete" c_tcanvas_delete 
+  :: (Ptr RawTCanvas) -> IO ()
+foreign import ccall "HROOT.h TCanvas_newTCanvas" c_tcanvas_newtcanvas 
+  :: CString -> CString -> CInt -> CInt -> IO (Ptr RawTCanvas)
+
+foreign import ccall "HROOT.h TDialogCanvas_SetTextColor" c_tdialogcanvas_settextcolor 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_SetTextAlign" c_tdialogcanvas_settextalign 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_SetTextSize" c_tdialogcanvas_settextsize 
+  :: (Ptr RawTDialogCanvas) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_GetFrame" c_tdialogcanvas_getframe 
+  :: (Ptr RawTDialogCanvas) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TDialogCanvas_Range" c_tdialogcanvas_range 
+  :: (Ptr RawTDialogCanvas) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_GetName" c_tdialogcanvas_getname 
+  :: (Ptr RawTDialogCanvas) -> IO CString
+foreign import ccall "HROOT.h TDialogCanvas_Draw" c_tdialogcanvas_draw 
+  :: (Ptr RawTDialogCanvas) -> CString -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_FindObject" c_tdialogcanvas_findobject 
+  :: (Ptr RawTDialogCanvas) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TDialogCanvas_SaveAs" c_tdialogcanvas_saveas 
+  :: (Ptr RawTDialogCanvas) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_Write" c_tdialogcanvas_write 
+  :: (Ptr RawTDialogCanvas) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TDialogCanvas_SetLineColor" c_tdialogcanvas_setlinecolor 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_SetFillColor" c_tdialogcanvas_setfillcolor 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_SetFillStyle" c_tdialogcanvas_setfillstyle 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_delete" c_tdialogcanvas_delete 
+  :: (Ptr RawTDialogCanvas) -> IO ()
+
+foreign import ccall "HROOT.h TInspectCanvas_SetTextColor" c_tinspectcanvas_settextcolor 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_SetTextAlign" c_tinspectcanvas_settextalign 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_SetTextSize" c_tinspectcanvas_settextsize 
+  :: (Ptr RawTInspectCanvas) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_GetFrame" c_tinspectcanvas_getframe 
+  :: (Ptr RawTInspectCanvas) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TInspectCanvas_Range" c_tinspectcanvas_range 
+  :: (Ptr RawTInspectCanvas) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_GetName" c_tinspectcanvas_getname 
+  :: (Ptr RawTInspectCanvas) -> IO CString
+foreign import ccall "HROOT.h TInspectCanvas_Draw" c_tinspectcanvas_draw 
+  :: (Ptr RawTInspectCanvas) -> CString -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_FindObject" c_tinspectcanvas_findobject 
+  :: (Ptr RawTInspectCanvas) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TInspectCanvas_SaveAs" c_tinspectcanvas_saveas 
+  :: (Ptr RawTInspectCanvas) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_Write" c_tinspectcanvas_write 
+  :: (Ptr RawTInspectCanvas) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TInspectCanvas_SetLineColor" c_tinspectcanvas_setlinecolor 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_SetFillColor" c_tinspectcanvas_setfillcolor 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_SetFillStyle" c_tinspectcanvas_setfillstyle 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_delete" c_tinspectcanvas_delete 
+  :: (Ptr RawTInspectCanvas) -> IO ()
+
+foreign import ccall "HROOT.h TEvePad_GetFrame" c_tevepad_getframe 
+  :: (Ptr RawTEvePad) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TEvePad_Range" c_tevepad_range 
+  :: (Ptr RawTEvePad) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TEvePad_GetName" c_tevepad_getname 
+  :: (Ptr RawTEvePad) -> IO CString
+foreign import ccall "HROOT.h TEvePad_Draw" c_tevepad_draw 
+  :: (Ptr RawTEvePad) -> CString -> IO ()
+foreign import ccall "HROOT.h TEvePad_FindObject" c_tevepad_findobject 
+  :: (Ptr RawTEvePad) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TEvePad_SaveAs" c_tevepad_saveas 
+  :: (Ptr RawTEvePad) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TEvePad_Write" c_tevepad_write 
+  :: (Ptr RawTEvePad) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TEvePad_SetLineColor" c_tevepad_setlinecolor 
+  :: (Ptr RawTEvePad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEvePad_SetFillColor" c_tevepad_setfillcolor 
+  :: (Ptr RawTEvePad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEvePad_SetFillStyle" c_tevepad_setfillstyle 
+  :: (Ptr RawTEvePad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEvePad_delete" c_tevepad_delete 
+  :: (Ptr RawTEvePad) -> IO ()
+
+foreign import ccall "HROOT.h TSlider_GetFrame" c_tslider_getframe 
+  :: (Ptr RawTSlider) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TSlider_Range" c_tslider_range 
+  :: (Ptr RawTSlider) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TSlider_GetName" c_tslider_getname 
+  :: (Ptr RawTSlider) -> IO CString
+foreign import ccall "HROOT.h TSlider_Draw" c_tslider_draw 
+  :: (Ptr RawTSlider) -> CString -> IO ()
+foreign import ccall "HROOT.h TSlider_FindObject" c_tslider_findobject 
+  :: (Ptr RawTSlider) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TSlider_SaveAs" c_tslider_saveas 
+  :: (Ptr RawTSlider) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TSlider_Write" c_tslider_write 
+  :: (Ptr RawTSlider) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TSlider_SetLineColor" c_tslider_setlinecolor 
+  :: (Ptr RawTSlider) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSlider_SetFillColor" c_tslider_setfillcolor 
+  :: (Ptr RawTSlider) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSlider_SetFillStyle" c_tslider_setfillstyle 
+  :: (Ptr RawTSlider) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSlider_delete" c_tslider_delete 
+  :: (Ptr RawTSlider) -> IO ()
+
+foreign import ccall "HROOT.h TApplication_GetName" c_tapplication_getname 
+  :: (Ptr RawTApplication) -> IO CString
+foreign import ccall "HROOT.h TApplication_Draw" c_tapplication_draw 
+  :: (Ptr RawTApplication) -> CString -> IO ()
+foreign import ccall "HROOT.h TApplication_FindObject" c_tapplication_findobject 
+  :: (Ptr RawTApplication) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TApplication_SaveAs" c_tapplication_saveas 
+  :: (Ptr RawTApplication) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TApplication_Write" c_tapplication_write 
+  :: (Ptr RawTApplication) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TApplication_delete" c_tapplication_delete 
+  :: (Ptr RawTApplication) -> IO ()
+foreign import ccall "HROOT.h TApplication_newTApplication" c_tapplication_newtapplication 
+  :: CString -> (Ptr CInt) -> (Ptr (CString)) -> IO (Ptr RawTApplication)
+foreign import ccall "HROOT.h TApplication_Run" c_tapplication_run 
+  :: (Ptr RawTApplication) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TRint_Run" c_trint_run 
+  :: (Ptr RawTRint) -> CInt -> IO ()
+foreign import ccall "HROOT.h TRint_GetName" c_trint_getname 
+  :: (Ptr RawTRint) -> IO CString
+foreign import ccall "HROOT.h TRint_Draw" c_trint_draw 
+  :: (Ptr RawTRint) -> CString -> IO ()
+foreign import ccall "HROOT.h TRint_FindObject" c_trint_findobject 
+  :: (Ptr RawTRint) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TRint_SaveAs" c_trint_saveas 
+  :: (Ptr RawTRint) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TRint_Write" c_trint_write 
+  :: (Ptr RawTRint) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TRint_delete" c_trint_delete 
+  :: (Ptr RawTRint) -> IO ()
+foreign import ccall "HROOT.h TRint_newTRint" c_trint_newtrint 
+  :: CString -> (Ptr CInt) -> (Ptr (CString)) -> IO (Ptr RawTRint)
+
+foreign import ccall "HROOT.h TRandom_SetTitle" c_trandom_settitle 
+  :: (Ptr RawTRandom) -> CString -> IO ()
+foreign import ccall "HROOT.h TRandom_GetName" c_trandom_getname 
+  :: (Ptr RawTRandom) -> IO CString
+foreign import ccall "HROOT.h TRandom_Draw" c_trandom_draw 
+  :: (Ptr RawTRandom) -> CString -> IO ()
+foreign import ccall "HROOT.h TRandom_FindObject" c_trandom_findobject 
+  :: (Ptr RawTRandom) -> CString -> IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TRandom_SaveAs" c_trandom_saveas 
+  :: (Ptr RawTRandom) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TRandom_Write" c_trandom_write 
+  :: (Ptr RawTRandom) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TRandom_delete" c_trandom_delete 
+  :: (Ptr RawTRandom) -> IO ()
+foreign import ccall "HROOT.h TRandom_newTRandom" c_trandom_newtrandom 
+  :: CInt -> IO (Ptr RawTRandom)
+foreign import ccall "HROOT.h TRandom_Gaus" c_trandom_gaus 
+  :: (Ptr RawTRandom) -> CDouble -> CDouble -> IO CDouble
+foreign import ccall "HROOT.h TRandom_Uniform" c_trandom_uniform 
+  :: (Ptr RawTRandom) -> CDouble -> CDouble -> IO CDouble
+
diff --git a/src/HROOT/Class/Implementation.hs b/src/HROOT/Class/Implementation.hs
new file mode 100644
--- /dev/null
+++ b/src/HROOT/Class/Implementation.hs
@@ -0,0 +1,4802 @@
+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, 
+             FlexibleInstances, TypeSynonymInstances, UndecidableInstances, 
+             EmptyDataDecls, IncoherentInstances #-}
+
+
+module HROOT.Class.Implementation where
+
+-- import Foreign.C            
+import Foreign.Ptr
+import Foreign.ForeignPtr
+
+import System.IO.Unsafe
+
+import HROOT.Class.Interface
+import HROOT.Class.FFI
+
+
+
+instance (ITObject a, FPtr a) => Castable a (Ptr RawTObject) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITNamed a, FPtr a) => Castable a (Ptr RawTNamed) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITFormula a, FPtr a) => Castable a (Ptr RawTFormula) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAtt3D a, FPtr a) => Castable a (Ptr RawTAtt3D) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttAxis a, FPtr a) => Castable a (Ptr RawTAttAxis) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttBBox a, FPtr a) => Castable a (Ptr RawTAttBBox) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttCanvas a, FPtr a) => Castable a (Ptr RawTAttCanvas) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttFill a, FPtr a) => Castable a (Ptr RawTAttFill) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttImage a, FPtr a) => Castable a (Ptr RawTAttImage) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttLine a, FPtr a) => Castable a (Ptr RawTAttLine) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttMarker a, FPtr a) => Castable a (Ptr RawTAttMarker) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttPad a, FPtr a) => Castable a (Ptr RawTAttPad) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttParticle a, FPtr a) => Castable a (Ptr RawTAttParticle) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttText a, FPtr a) => Castable a (Ptr RawTAttText) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITHStack a, FPtr a) => Castable a (Ptr RawTHStack) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITF1 a, FPtr a) => Castable a (Ptr RawTF1) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraph a, FPtr a) => Castable a (Ptr RawTGraph) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphAsymmErrors a, FPtr a) => Castable a (Ptr RawTGraphAsymmErrors) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCutG a, FPtr a) => Castable a (Ptr RawTCutG) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphBentErrors a, FPtr a) => Castable a (Ptr RawTGraphBentErrors) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphErrors a, FPtr a) => Castable a (Ptr RawTGraphErrors) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphPolar a, FPtr a) => Castable a (Ptr RawTGraphPolar) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphQQ a, FPtr a) => Castable a (Ptr RawTGraphQQ) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITEllipse a, FPtr a) => Castable a (Ptr RawTEllipse) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArc a, FPtr a) => Castable a (Ptr RawTArc) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCrown a, FPtr a) => Castable a (Ptr RawTCrown) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITLine a, FPtr a) => Castable a (Ptr RawTLine) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrow a, FPtr a) => Castable a (Ptr RawTArrow) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGaxis a, FPtr a) => Castable a (Ptr RawTGaxis) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITShape a, FPtr a) => Castable a (Ptr RawTShape) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITBRIK a, FPtr a) => Castable a (Ptr RawTBRIK) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITTUBE a, FPtr a) => Castable a (Ptr RawTTUBE) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPCON a, FPtr a) => Castable a (Ptr RawTPCON) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITSPHE a, FPtr a) => Castable a (Ptr RawTSPHE) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITXTRU a, FPtr a) => Castable a (Ptr RawTXTRU) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITBox a, FPtr a) => Castable a (Ptr RawTBox) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPave a, FPtr a) => Castable a (Ptr RawTPave) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPaveText a, FPtr a) => Castable a (Ptr RawTPaveText) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITDiamond a, FPtr a) => Castable a (Ptr RawTDiamond) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPaveStats a, FPtr a) => Castable a (Ptr RawTPaveStats) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPavesText a, FPtr a) => Castable a (Ptr RawTPavesText) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITLegend a, FPtr a) => Castable a (Ptr RawTLegend) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPaveLabel a, FPtr a) => Castable a (Ptr RawTPaveLabel) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPaveClass a, FPtr a) => Castable a (Ptr RawTPaveClass) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITWbox a, FPtr a) => Castable a (Ptr RawTWbox) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITFrame a, FPtr a) => Castable a (Ptr RawTFrame) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITSliderBox a, FPtr a) => Castable a (Ptr RawTSliderBox) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITTree a, FPtr a) => Castable a (Ptr RawTTree) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITChain a, FPtr a) => Castable a (Ptr RawTChain) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITNtuple a, FPtr a) => Castable a (Ptr RawTNtuple) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITNtupleD a, FPtr a) => Castable a (Ptr RawTNtupleD) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITTreeSQL a, FPtr a) => Castable a (Ptr RawTTreeSQL) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPolyLine a, FPtr a) => Castable a (Ptr RawTPolyLine) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCurlyLine a, FPtr a) => Castable a (Ptr RawTCurlyLine) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCurlyArc a, FPtr a) => Castable a (Ptr RawTCurlyArc) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITEfficiency a, FPtr a) => Castable a (Ptr RawTEfficiency) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAxis a, FPtr a) => Castable a (Ptr RawTAxis) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITLatex a, FPtr a) => Castable a (Ptr RawTLatex) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITText a, FPtr a) => Castable a (Ptr RawTText) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITDirectory a, FPtr a) => Castable a (Ptr RawTDirectory) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITDirectoryFile a, FPtr a) => Castable a (Ptr RawTDirectoryFile) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITFile a, FPtr a) => Castable a (Ptr RawTFile) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITBranch a, FPtr a) => Castable a (Ptr RawTBranch) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITVirtualTreePlayer a, FPtr a) => Castable a (Ptr RawTVirtualTreePlayer) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITTreePlayer a, FPtr a) => Castable a (Ptr RawTTreePlayer) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArray a, FPtr a) => Castable a (Ptr RawTArray) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayC a, FPtr a) => Castable a (Ptr RawTArrayC) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayD a, FPtr a) => Castable a (Ptr RawTArrayD) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayF a, FPtr a) => Castable a (Ptr RawTArrayF) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayI a, FPtr a) => Castable a (Ptr RawTArrayI) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayL a, FPtr a) => Castable a (Ptr RawTArrayL) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayL64 a, FPtr a) => Castable a (Ptr RawTArrayL64) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayS a, FPtr a) => Castable a (Ptr RawTArrayS) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1 a, FPtr a) => Castable a (Ptr RawTH1) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2 a, FPtr a) => Castable a (Ptr RawTH2) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3 a, FPtr a) => Castable a (Ptr RawTH3) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1C a, FPtr a) => Castable a (Ptr RawTH1C) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1D a, FPtr a) => Castable a (Ptr RawTH1D) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1F a, FPtr a) => Castable a (Ptr RawTH1F) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1I a, FPtr a) => Castable a (Ptr RawTH1I) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1S a, FPtr a) => Castable a (Ptr RawTH1S) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2C a, FPtr a) => Castable a (Ptr RawTH2C) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2D a, FPtr a) => Castable a (Ptr RawTH2D) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2F a, FPtr a) => Castable a (Ptr RawTH2F) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2I a, FPtr a) => Castable a (Ptr RawTH2I) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2Poly a, FPtr a) => Castable a (Ptr RawTH2Poly) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2S a, FPtr a) => Castable a (Ptr RawTH2S) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3C a, FPtr a) => Castable a (Ptr RawTH3C) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3D a, FPtr a) => Castable a (Ptr RawTH3D) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3F a, FPtr a) => Castable a (Ptr RawTH3F) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3I a, FPtr a) => Castable a (Ptr RawTH3I) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3S a, FPtr a) => Castable a (Ptr RawTH3S) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITQObject a, FPtr a) => Castable a (Ptr RawTQObject) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITVirtualPad a, FPtr a) => Castable a (Ptr RawTVirtualPad) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPad a, FPtr a) => Castable a (Ptr RawTPad) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITButton a, FPtr a) => Castable a (Ptr RawTButton) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGroupButton a, FPtr a) => Castable a (Ptr RawTGroupButton) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCanvas a, FPtr a) => Castable a (Ptr RawTCanvas) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITDialogCanvas a, FPtr a) => Castable a (Ptr RawTDialogCanvas) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITInspectCanvas a, FPtr a) => Castable a (Ptr RawTInspectCanvas) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITEvePad a, FPtr a) => Castable a (Ptr RawTEvePad) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITSlider a, FPtr a) => Castable a (Ptr RawTSlider) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITApplication a, FPtr a) => Castable a (Ptr RawTApplication) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITRint a, FPtr a) => Castable a (Ptr RawTRint) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITRandom a, FPtr a) => Castable a (Ptr RawTRandom) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance FPtr (Exist TObject) where
+  type Raw (Exist TObject) = RawTObject
+  get_fptr (ETObject obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETObject (cast_fptr_to_obj (fptr :: ForeignPtr RawTObject) :: TObject)
+
+instance Castable (Exist TObject) (Ptr RawTObject) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TNamed) where
+  type Raw (Exist TNamed) = RawTNamed
+  get_fptr (ETNamed obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETNamed (cast_fptr_to_obj (fptr :: ForeignPtr RawTNamed) :: TNamed)
+
+instance Castable (Exist TNamed) (Ptr RawTNamed) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TFormula) where
+  type Raw (Exist TFormula) = RawTFormula
+  get_fptr (ETFormula obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETFormula (cast_fptr_to_obj (fptr :: ForeignPtr RawTFormula) :: TFormula)
+
+instance Castable (Exist TFormula) (Ptr RawTFormula) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAtt3D) where
+  type Raw (Exist TAtt3D) = RawTAtt3D
+  get_fptr (ETAtt3D obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAtt3D (cast_fptr_to_obj (fptr :: ForeignPtr RawTAtt3D) :: TAtt3D)
+
+instance Castable (Exist TAtt3D) (Ptr RawTAtt3D) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttAxis) where
+  type Raw (Exist TAttAxis) = RawTAttAxis
+  get_fptr (ETAttAxis obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttAxis (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttAxis) :: TAttAxis)
+
+instance Castable (Exist TAttAxis) (Ptr RawTAttAxis) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttBBox) where
+  type Raw (Exist TAttBBox) = RawTAttBBox
+  get_fptr (ETAttBBox obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttBBox (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttBBox) :: TAttBBox)
+
+instance Castable (Exist TAttBBox) (Ptr RawTAttBBox) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttCanvas) where
+  type Raw (Exist TAttCanvas) = RawTAttCanvas
+  get_fptr (ETAttCanvas obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttCanvas (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttCanvas) :: TAttCanvas)
+
+instance Castable (Exist TAttCanvas) (Ptr RawTAttCanvas) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttFill) where
+  type Raw (Exist TAttFill) = RawTAttFill
+  get_fptr (ETAttFill obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttFill (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttFill) :: TAttFill)
+
+instance Castable (Exist TAttFill) (Ptr RawTAttFill) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttImage) where
+  type Raw (Exist TAttImage) = RawTAttImage
+  get_fptr (ETAttImage obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttImage (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttImage) :: TAttImage)
+
+instance Castable (Exist TAttImage) (Ptr RawTAttImage) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttLine) where
+  type Raw (Exist TAttLine) = RawTAttLine
+  get_fptr (ETAttLine obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttLine (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttLine) :: TAttLine)
+
+instance Castable (Exist TAttLine) (Ptr RawTAttLine) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttMarker) where
+  type Raw (Exist TAttMarker) = RawTAttMarker
+  get_fptr (ETAttMarker obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttMarker (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttMarker) :: TAttMarker)
+
+instance Castable (Exist TAttMarker) (Ptr RawTAttMarker) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttPad) where
+  type Raw (Exist TAttPad) = RawTAttPad
+  get_fptr (ETAttPad obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttPad (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttPad) :: TAttPad)
+
+instance Castable (Exist TAttPad) (Ptr RawTAttPad) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttParticle) where
+  type Raw (Exist TAttParticle) = RawTAttParticle
+  get_fptr (ETAttParticle obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttParticle (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttParticle) :: TAttParticle)
+
+instance Castable (Exist TAttParticle) (Ptr RawTAttParticle) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAttText) where
+  type Raw (Exist TAttText) = RawTAttText
+  get_fptr (ETAttText obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAttText (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttText) :: TAttText)
+
+instance Castable (Exist TAttText) (Ptr RawTAttText) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist THStack) where
+  type Raw (Exist THStack) = RawTHStack
+  get_fptr (ETHStack obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETHStack (cast_fptr_to_obj (fptr :: ForeignPtr RawTHStack) :: THStack)
+
+instance Castable (Exist THStack) (Ptr RawTHStack) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TF1) where
+  type Raw (Exist TF1) = RawTF1
+  get_fptr (ETF1 obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETF1 (cast_fptr_to_obj (fptr :: ForeignPtr RawTF1) :: TF1)
+
+instance Castable (Exist TF1) (Ptr RawTF1) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TGraph) where
+  type Raw (Exist TGraph) = RawTGraph
+  get_fptr (ETGraph obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETGraph (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraph) :: TGraph)
+
+instance Castable (Exist TGraph) (Ptr RawTGraph) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TGraphAsymmErrors) where
+  type Raw (Exist TGraphAsymmErrors) = RawTGraphAsymmErrors
+  get_fptr (ETGraphAsymmErrors obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETGraphAsymmErrors (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraphAsymmErrors) :: TGraphAsymmErrors)
+
+instance Castable (Exist TGraphAsymmErrors) (Ptr RawTGraphAsymmErrors) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TCutG) where
+  type Raw (Exist TCutG) = RawTCutG
+  get_fptr (ETCutG obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETCutG (cast_fptr_to_obj (fptr :: ForeignPtr RawTCutG) :: TCutG)
+
+instance Castable (Exist TCutG) (Ptr RawTCutG) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TGraphBentErrors) where
+  type Raw (Exist TGraphBentErrors) = RawTGraphBentErrors
+  get_fptr (ETGraphBentErrors obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETGraphBentErrors (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraphBentErrors) :: TGraphBentErrors)
+
+instance Castable (Exist TGraphBentErrors) (Ptr RawTGraphBentErrors) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TGraphErrors) where
+  type Raw (Exist TGraphErrors) = RawTGraphErrors
+  get_fptr (ETGraphErrors obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETGraphErrors (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraphErrors) :: TGraphErrors)
+
+instance Castable (Exist TGraphErrors) (Ptr RawTGraphErrors) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TGraphPolar) where
+  type Raw (Exist TGraphPolar) = RawTGraphPolar
+  get_fptr (ETGraphPolar obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETGraphPolar (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraphPolar) :: TGraphPolar)
+
+instance Castable (Exist TGraphPolar) (Ptr RawTGraphPolar) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TGraphQQ) where
+  type Raw (Exist TGraphQQ) = RawTGraphQQ
+  get_fptr (ETGraphQQ obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETGraphQQ (cast_fptr_to_obj (fptr :: ForeignPtr RawTGraphQQ) :: TGraphQQ)
+
+instance Castable (Exist TGraphQQ) (Ptr RawTGraphQQ) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TEllipse) where
+  type Raw (Exist TEllipse) = RawTEllipse
+  get_fptr (ETEllipse obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETEllipse (cast_fptr_to_obj (fptr :: ForeignPtr RawTEllipse) :: TEllipse)
+
+instance Castable (Exist TEllipse) (Ptr RawTEllipse) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArc) where
+  type Raw (Exist TArc) = RawTArc
+  get_fptr (ETArc obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArc (cast_fptr_to_obj (fptr :: ForeignPtr RawTArc) :: TArc)
+
+instance Castable (Exist TArc) (Ptr RawTArc) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TCrown) where
+  type Raw (Exist TCrown) = RawTCrown
+  get_fptr (ETCrown obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETCrown (cast_fptr_to_obj (fptr :: ForeignPtr RawTCrown) :: TCrown)
+
+instance Castable (Exist TCrown) (Ptr RawTCrown) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TLine) where
+  type Raw (Exist TLine) = RawTLine
+  get_fptr (ETLine obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETLine (cast_fptr_to_obj (fptr :: ForeignPtr RawTLine) :: TLine)
+
+instance Castable (Exist TLine) (Ptr RawTLine) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArrow) where
+  type Raw (Exist TArrow) = RawTArrow
+  get_fptr (ETArrow obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArrow (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrow) :: TArrow)
+
+instance Castable (Exist TArrow) (Ptr RawTArrow) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TGaxis) where
+  type Raw (Exist TGaxis) = RawTGaxis
+  get_fptr (ETGaxis obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETGaxis (cast_fptr_to_obj (fptr :: ForeignPtr RawTGaxis) :: TGaxis)
+
+instance Castable (Exist TGaxis) (Ptr RawTGaxis) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TShape) where
+  type Raw (Exist TShape) = RawTShape
+  get_fptr (ETShape obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETShape (cast_fptr_to_obj (fptr :: ForeignPtr RawTShape) :: TShape)
+
+instance Castable (Exist TShape) (Ptr RawTShape) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TBRIK) where
+  type Raw (Exist TBRIK) = RawTBRIK
+  get_fptr (ETBRIK obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETBRIK (cast_fptr_to_obj (fptr :: ForeignPtr RawTBRIK) :: TBRIK)
+
+instance Castable (Exist TBRIK) (Ptr RawTBRIK) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TTUBE) where
+  type Raw (Exist TTUBE) = RawTTUBE
+  get_fptr (ETTUBE obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETTUBE (cast_fptr_to_obj (fptr :: ForeignPtr RawTTUBE) :: TTUBE)
+
+instance Castable (Exist TTUBE) (Ptr RawTTUBE) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TPCON) where
+  type Raw (Exist TPCON) = RawTPCON
+  get_fptr (ETPCON obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETPCON (cast_fptr_to_obj (fptr :: ForeignPtr RawTPCON) :: TPCON)
+
+instance Castable (Exist TPCON) (Ptr RawTPCON) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TSPHE) where
+  type Raw (Exist TSPHE) = RawTSPHE
+  get_fptr (ETSPHE obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETSPHE (cast_fptr_to_obj (fptr :: ForeignPtr RawTSPHE) :: TSPHE)
+
+instance Castable (Exist TSPHE) (Ptr RawTSPHE) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TXTRU) where
+  type Raw (Exist TXTRU) = RawTXTRU
+  get_fptr (ETXTRU obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETXTRU (cast_fptr_to_obj (fptr :: ForeignPtr RawTXTRU) :: TXTRU)
+
+instance Castable (Exist TXTRU) (Ptr RawTXTRU) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TBox) where
+  type Raw (Exist TBox) = RawTBox
+  get_fptr (ETBox obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETBox (cast_fptr_to_obj (fptr :: ForeignPtr RawTBox) :: TBox)
+
+instance Castable (Exist TBox) (Ptr RawTBox) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TPave) where
+  type Raw (Exist TPave) = RawTPave
+  get_fptr (ETPave obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETPave (cast_fptr_to_obj (fptr :: ForeignPtr RawTPave) :: TPave)
+
+instance Castable (Exist TPave) (Ptr RawTPave) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TPaveText) where
+  type Raw (Exist TPaveText) = RawTPaveText
+  get_fptr (ETPaveText obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETPaveText (cast_fptr_to_obj (fptr :: ForeignPtr RawTPaveText) :: TPaveText)
+
+instance Castable (Exist TPaveText) (Ptr RawTPaveText) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TDiamond) where
+  type Raw (Exist TDiamond) = RawTDiamond
+  get_fptr (ETDiamond obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETDiamond (cast_fptr_to_obj (fptr :: ForeignPtr RawTDiamond) :: TDiamond)
+
+instance Castable (Exist TDiamond) (Ptr RawTDiamond) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TPaveStats) where
+  type Raw (Exist TPaveStats) = RawTPaveStats
+  get_fptr (ETPaveStats obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETPaveStats (cast_fptr_to_obj (fptr :: ForeignPtr RawTPaveStats) :: TPaveStats)
+
+instance Castable (Exist TPaveStats) (Ptr RawTPaveStats) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TPavesText) where
+  type Raw (Exist TPavesText) = RawTPavesText
+  get_fptr (ETPavesText obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETPavesText (cast_fptr_to_obj (fptr :: ForeignPtr RawTPavesText) :: TPavesText)
+
+instance Castable (Exist TPavesText) (Ptr RawTPavesText) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TLegend) where
+  type Raw (Exist TLegend) = RawTLegend
+  get_fptr (ETLegend obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETLegend (cast_fptr_to_obj (fptr :: ForeignPtr RawTLegend) :: TLegend)
+
+instance Castable (Exist TLegend) (Ptr RawTLegend) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TPaveLabel) where
+  type Raw (Exist TPaveLabel) = RawTPaveLabel
+  get_fptr (ETPaveLabel obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETPaveLabel (cast_fptr_to_obj (fptr :: ForeignPtr RawTPaveLabel) :: TPaveLabel)
+
+instance Castable (Exist TPaveLabel) (Ptr RawTPaveLabel) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TPaveClass) where
+  type Raw (Exist TPaveClass) = RawTPaveClass
+  get_fptr (ETPaveClass obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETPaveClass (cast_fptr_to_obj (fptr :: ForeignPtr RawTPaveClass) :: TPaveClass)
+
+instance Castable (Exist TPaveClass) (Ptr RawTPaveClass) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TWbox) where
+  type Raw (Exist TWbox) = RawTWbox
+  get_fptr (ETWbox obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETWbox (cast_fptr_to_obj (fptr :: ForeignPtr RawTWbox) :: TWbox)
+
+instance Castable (Exist TWbox) (Ptr RawTWbox) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TFrame) where
+  type Raw (Exist TFrame) = RawTFrame
+  get_fptr (ETFrame obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETFrame (cast_fptr_to_obj (fptr :: ForeignPtr RawTFrame) :: TFrame)
+
+instance Castable (Exist TFrame) (Ptr RawTFrame) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TSliderBox) where
+  type Raw (Exist TSliderBox) = RawTSliderBox
+  get_fptr (ETSliderBox obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETSliderBox (cast_fptr_to_obj (fptr :: ForeignPtr RawTSliderBox) :: TSliderBox)
+
+instance Castable (Exist TSliderBox) (Ptr RawTSliderBox) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TTree) where
+  type Raw (Exist TTree) = RawTTree
+  get_fptr (ETTree obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETTree (cast_fptr_to_obj (fptr :: ForeignPtr RawTTree) :: TTree)
+
+instance Castable (Exist TTree) (Ptr RawTTree) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TChain) where
+  type Raw (Exist TChain) = RawTChain
+  get_fptr (ETChain obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETChain (cast_fptr_to_obj (fptr :: ForeignPtr RawTChain) :: TChain)
+
+instance Castable (Exist TChain) (Ptr RawTChain) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TNtuple) where
+  type Raw (Exist TNtuple) = RawTNtuple
+  get_fptr (ETNtuple obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETNtuple (cast_fptr_to_obj (fptr :: ForeignPtr RawTNtuple) :: TNtuple)
+
+instance Castable (Exist TNtuple) (Ptr RawTNtuple) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TNtupleD) where
+  type Raw (Exist TNtupleD) = RawTNtupleD
+  get_fptr (ETNtupleD obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETNtupleD (cast_fptr_to_obj (fptr :: ForeignPtr RawTNtupleD) :: TNtupleD)
+
+instance Castable (Exist TNtupleD) (Ptr RawTNtupleD) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TTreeSQL) where
+  type Raw (Exist TTreeSQL) = RawTTreeSQL
+  get_fptr (ETTreeSQL obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETTreeSQL (cast_fptr_to_obj (fptr :: ForeignPtr RawTTreeSQL) :: TTreeSQL)
+
+instance Castable (Exist TTreeSQL) (Ptr RawTTreeSQL) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TPolyLine) where
+  type Raw (Exist TPolyLine) = RawTPolyLine
+  get_fptr (ETPolyLine obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETPolyLine (cast_fptr_to_obj (fptr :: ForeignPtr RawTPolyLine) :: TPolyLine)
+
+instance Castable (Exist TPolyLine) (Ptr RawTPolyLine) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TCurlyLine) where
+  type Raw (Exist TCurlyLine) = RawTCurlyLine
+  get_fptr (ETCurlyLine obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETCurlyLine (cast_fptr_to_obj (fptr :: ForeignPtr RawTCurlyLine) :: TCurlyLine)
+
+instance Castable (Exist TCurlyLine) (Ptr RawTCurlyLine) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TCurlyArc) where
+  type Raw (Exist TCurlyArc) = RawTCurlyArc
+  get_fptr (ETCurlyArc obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETCurlyArc (cast_fptr_to_obj (fptr :: ForeignPtr RawTCurlyArc) :: TCurlyArc)
+
+instance Castable (Exist TCurlyArc) (Ptr RawTCurlyArc) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TEfficiency) where
+  type Raw (Exist TEfficiency) = RawTEfficiency
+  get_fptr (ETEfficiency obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETEfficiency (cast_fptr_to_obj (fptr :: ForeignPtr RawTEfficiency) :: TEfficiency)
+
+instance Castable (Exist TEfficiency) (Ptr RawTEfficiency) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TAxis) where
+  type Raw (Exist TAxis) = RawTAxis
+  get_fptr (ETAxis obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETAxis (cast_fptr_to_obj (fptr :: ForeignPtr RawTAxis) :: TAxis)
+
+instance Castable (Exist TAxis) (Ptr RawTAxis) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TLatex) where
+  type Raw (Exist TLatex) = RawTLatex
+  get_fptr (ETLatex obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETLatex (cast_fptr_to_obj (fptr :: ForeignPtr RawTLatex) :: TLatex)
+
+instance Castable (Exist TLatex) (Ptr RawTLatex) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TText) where
+  type Raw (Exist TText) = RawTText
+  get_fptr (ETText obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETText (cast_fptr_to_obj (fptr :: ForeignPtr RawTText) :: TText)
+
+instance Castable (Exist TText) (Ptr RawTText) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TDirectory) where
+  type Raw (Exist TDirectory) = RawTDirectory
+  get_fptr (ETDirectory obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETDirectory (cast_fptr_to_obj (fptr :: ForeignPtr RawTDirectory) :: TDirectory)
+
+instance Castable (Exist TDirectory) (Ptr RawTDirectory) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TDirectoryFile) where
+  type Raw (Exist TDirectoryFile) = RawTDirectoryFile
+  get_fptr (ETDirectoryFile obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETDirectoryFile (cast_fptr_to_obj (fptr :: ForeignPtr RawTDirectoryFile) :: TDirectoryFile)
+
+instance Castable (Exist TDirectoryFile) (Ptr RawTDirectoryFile) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TFile) where
+  type Raw (Exist TFile) = RawTFile
+  get_fptr (ETFile obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETFile (cast_fptr_to_obj (fptr :: ForeignPtr RawTFile) :: TFile)
+
+instance Castable (Exist TFile) (Ptr RawTFile) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TBranch) where
+  type Raw (Exist TBranch) = RawTBranch
+  get_fptr (ETBranch obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETBranch (cast_fptr_to_obj (fptr :: ForeignPtr RawTBranch) :: TBranch)
+
+instance Castable (Exist TBranch) (Ptr RawTBranch) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TVirtualTreePlayer) where
+  type Raw (Exist TVirtualTreePlayer) = RawTVirtualTreePlayer
+  get_fptr (ETVirtualTreePlayer obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETVirtualTreePlayer (cast_fptr_to_obj (fptr :: ForeignPtr RawTVirtualTreePlayer) :: TVirtualTreePlayer)
+
+instance Castable (Exist TVirtualTreePlayer) (Ptr RawTVirtualTreePlayer) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TTreePlayer) where
+  type Raw (Exist TTreePlayer) = RawTTreePlayer
+  get_fptr (ETTreePlayer obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETTreePlayer (cast_fptr_to_obj (fptr :: ForeignPtr RawTTreePlayer) :: TTreePlayer)
+
+instance Castable (Exist TTreePlayer) (Ptr RawTTreePlayer) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArray) where
+  type Raw (Exist TArray) = RawTArray
+  get_fptr (ETArray obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArray (cast_fptr_to_obj (fptr :: ForeignPtr RawTArray) :: TArray)
+
+instance Castable (Exist TArray) (Ptr RawTArray) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArrayC) where
+  type Raw (Exist TArrayC) = RawTArrayC
+  get_fptr (ETArrayC obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArrayC (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrayC) :: TArrayC)
+
+instance Castable (Exist TArrayC) (Ptr RawTArrayC) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArrayD) where
+  type Raw (Exist TArrayD) = RawTArrayD
+  get_fptr (ETArrayD obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArrayD (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrayD) :: TArrayD)
+
+instance Castable (Exist TArrayD) (Ptr RawTArrayD) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArrayF) where
+  type Raw (Exist TArrayF) = RawTArrayF
+  get_fptr (ETArrayF obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArrayF (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrayF) :: TArrayF)
+
+instance Castable (Exist TArrayF) (Ptr RawTArrayF) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArrayI) where
+  type Raw (Exist TArrayI) = RawTArrayI
+  get_fptr (ETArrayI obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArrayI (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrayI) :: TArrayI)
+
+instance Castable (Exist TArrayI) (Ptr RawTArrayI) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArrayL) where
+  type Raw (Exist TArrayL) = RawTArrayL
+  get_fptr (ETArrayL obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArrayL (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrayL) :: TArrayL)
+
+instance Castable (Exist TArrayL) (Ptr RawTArrayL) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArrayL64) where
+  type Raw (Exist TArrayL64) = RawTArrayL64
+  get_fptr (ETArrayL64 obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArrayL64 (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrayL64) :: TArrayL64)
+
+instance Castable (Exist TArrayL64) (Ptr RawTArrayL64) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TArrayS) where
+  type Raw (Exist TArrayS) = RawTArrayS
+  get_fptr (ETArrayS obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETArrayS (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrayS) :: TArrayS)
+
+instance Castable (Exist TArrayS) (Ptr RawTArrayS) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH1) where
+  type Raw (Exist TH1) = RawTH1
+  get_fptr (ETH1 obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH1 (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1) :: TH1)
+
+instance Castable (Exist TH1) (Ptr RawTH1) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH2) where
+  type Raw (Exist TH2) = RawTH2
+  get_fptr (ETH2 obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH2 (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2) :: TH2)
+
+instance Castable (Exist TH2) (Ptr RawTH2) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH3) where
+  type Raw (Exist TH3) = RawTH3
+  get_fptr (ETH3 obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH3 (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3) :: TH3)
+
+instance Castable (Exist TH3) (Ptr RawTH3) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH1C) where
+  type Raw (Exist TH1C) = RawTH1C
+  get_fptr (ETH1C obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH1C (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1C) :: TH1C)
+
+instance Castable (Exist TH1C) (Ptr RawTH1C) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH1D) where
+  type Raw (Exist TH1D) = RawTH1D
+  get_fptr (ETH1D obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH1D (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1D) :: TH1D)
+
+instance Castable (Exist TH1D) (Ptr RawTH1D) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH1F) where
+  type Raw (Exist TH1F) = RawTH1F
+  get_fptr (ETH1F obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH1F (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1F) :: TH1F)
+
+instance Castable (Exist TH1F) (Ptr RawTH1F) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH1I) where
+  type Raw (Exist TH1I) = RawTH1I
+  get_fptr (ETH1I obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH1I (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1I) :: TH1I)
+
+instance Castable (Exist TH1I) (Ptr RawTH1I) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH1S) where
+  type Raw (Exist TH1S) = RawTH1S
+  get_fptr (ETH1S obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH1S (cast_fptr_to_obj (fptr :: ForeignPtr RawTH1S) :: TH1S)
+
+instance Castable (Exist TH1S) (Ptr RawTH1S) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH2C) where
+  type Raw (Exist TH2C) = RawTH2C
+  get_fptr (ETH2C obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH2C (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2C) :: TH2C)
+
+instance Castable (Exist TH2C) (Ptr RawTH2C) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH2D) where
+  type Raw (Exist TH2D) = RawTH2D
+  get_fptr (ETH2D obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH2D (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2D) :: TH2D)
+
+instance Castable (Exist TH2D) (Ptr RawTH2D) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH2F) where
+  type Raw (Exist TH2F) = RawTH2F
+  get_fptr (ETH2F obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH2F (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2F) :: TH2F)
+
+instance Castable (Exist TH2F) (Ptr RawTH2F) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH2I) where
+  type Raw (Exist TH2I) = RawTH2I
+  get_fptr (ETH2I obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH2I (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2I) :: TH2I)
+
+instance Castable (Exist TH2I) (Ptr RawTH2I) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH2Poly) where
+  type Raw (Exist TH2Poly) = RawTH2Poly
+  get_fptr (ETH2Poly obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH2Poly (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2Poly) :: TH2Poly)
+
+instance Castable (Exist TH2Poly) (Ptr RawTH2Poly) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH2S) where
+  type Raw (Exist TH2S) = RawTH2S
+  get_fptr (ETH2S obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH2S (cast_fptr_to_obj (fptr :: ForeignPtr RawTH2S) :: TH2S)
+
+instance Castable (Exist TH2S) (Ptr RawTH2S) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH3C) where
+  type Raw (Exist TH3C) = RawTH3C
+  get_fptr (ETH3C obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH3C (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3C) :: TH3C)
+
+instance Castable (Exist TH3C) (Ptr RawTH3C) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH3D) where
+  type Raw (Exist TH3D) = RawTH3D
+  get_fptr (ETH3D obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH3D (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3D) :: TH3D)
+
+instance Castable (Exist TH3D) (Ptr RawTH3D) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH3F) where
+  type Raw (Exist TH3F) = RawTH3F
+  get_fptr (ETH3F obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH3F (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3F) :: TH3F)
+
+instance Castable (Exist TH3F) (Ptr RawTH3F) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH3I) where
+  type Raw (Exist TH3I) = RawTH3I
+  get_fptr (ETH3I obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH3I (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3I) :: TH3I)
+
+instance Castable (Exist TH3I) (Ptr RawTH3I) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TH3S) where
+  type Raw (Exist TH3S) = RawTH3S
+  get_fptr (ETH3S obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETH3S (cast_fptr_to_obj (fptr :: ForeignPtr RawTH3S) :: TH3S)
+
+instance Castable (Exist TH3S) (Ptr RawTH3S) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TQObject) where
+  type Raw (Exist TQObject) = RawTQObject
+  get_fptr (ETQObject obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETQObject (cast_fptr_to_obj (fptr :: ForeignPtr RawTQObject) :: TQObject)
+
+instance Castable (Exist TQObject) (Ptr RawTQObject) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TVirtualPad) where
+  type Raw (Exist TVirtualPad) = RawTVirtualPad
+  get_fptr (ETVirtualPad obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETVirtualPad (cast_fptr_to_obj (fptr :: ForeignPtr RawTVirtualPad) :: TVirtualPad)
+
+instance Castable (Exist TVirtualPad) (Ptr RawTVirtualPad) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TPad) where
+  type Raw (Exist TPad) = RawTPad
+  get_fptr (ETPad obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETPad (cast_fptr_to_obj (fptr :: ForeignPtr RawTPad) :: TPad)
+
+instance Castable (Exist TPad) (Ptr RawTPad) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TButton) where
+  type Raw (Exist TButton) = RawTButton
+  get_fptr (ETButton obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETButton (cast_fptr_to_obj (fptr :: ForeignPtr RawTButton) :: TButton)
+
+instance Castable (Exist TButton) (Ptr RawTButton) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TGroupButton) where
+  type Raw (Exist TGroupButton) = RawTGroupButton
+  get_fptr (ETGroupButton obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETGroupButton (cast_fptr_to_obj (fptr :: ForeignPtr RawTGroupButton) :: TGroupButton)
+
+instance Castable (Exist TGroupButton) (Ptr RawTGroupButton) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TCanvas) where
+  type Raw (Exist TCanvas) = RawTCanvas
+  get_fptr (ETCanvas obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETCanvas (cast_fptr_to_obj (fptr :: ForeignPtr RawTCanvas) :: TCanvas)
+
+instance Castable (Exist TCanvas) (Ptr RawTCanvas) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TDialogCanvas) where
+  type Raw (Exist TDialogCanvas) = RawTDialogCanvas
+  get_fptr (ETDialogCanvas obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETDialogCanvas (cast_fptr_to_obj (fptr :: ForeignPtr RawTDialogCanvas) :: TDialogCanvas)
+
+instance Castable (Exist TDialogCanvas) (Ptr RawTDialogCanvas) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TInspectCanvas) where
+  type Raw (Exist TInspectCanvas) = RawTInspectCanvas
+  get_fptr (ETInspectCanvas obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETInspectCanvas (cast_fptr_to_obj (fptr :: ForeignPtr RawTInspectCanvas) :: TInspectCanvas)
+
+instance Castable (Exist TInspectCanvas) (Ptr RawTInspectCanvas) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TEvePad) where
+  type Raw (Exist TEvePad) = RawTEvePad
+  get_fptr (ETEvePad obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETEvePad (cast_fptr_to_obj (fptr :: ForeignPtr RawTEvePad) :: TEvePad)
+
+instance Castable (Exist TEvePad) (Ptr RawTEvePad) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TSlider) where
+  type Raw (Exist TSlider) = RawTSlider
+  get_fptr (ETSlider obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETSlider (cast_fptr_to_obj (fptr :: ForeignPtr RawTSlider) :: TSlider)
+
+instance Castable (Exist TSlider) (Ptr RawTSlider) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TApplication) where
+  type Raw (Exist TApplication) = RawTApplication
+  get_fptr (ETApplication obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETApplication (cast_fptr_to_obj (fptr :: ForeignPtr RawTApplication) :: TApplication)
+
+instance Castable (Exist TApplication) (Ptr RawTApplication) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TRint) where
+  type Raw (Exist TRint) = RawTRint
+  get_fptr (ETRint obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETRint (cast_fptr_to_obj (fptr :: ForeignPtr RawTRint) :: TRint)
+
+instance Castable (Exist TRint) (Ptr RawTRint) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+instance FPtr (Exist TRandom) where
+  type Raw (Exist TRandom) = RawTRandom
+  get_fptr (ETRandom obj) = castForeignPtr (get_fptr obj)
+  cast_fptr_to_obj fptr = ETRandom (cast_fptr_to_obj (fptr :: ForeignPtr RawTRandom) :: TRandom)
+
+instance Castable (Exist TRandom) (Ptr RawTRandom) where
+  cast = unsafeForeignPtrToPtr . get_fptr
+  uncast = cast_fptr_to_obj . unsafePerformIO . newForeignPtr_
+
+
+
+instance ITObject TObject where
+  getName = xform0 c_tobject_getname
+  draw = xform1 c_tobject_draw
+  findObject = xform1 c_tobject_findobject
+  saveAs = xform2 c_tobject_saveas
+  write = xform3 c_tobject_write
+
+instance ITNamed TNamed where
+  setTitle = xform1 c_tnamed_settitle
+
+instance ITFormula TFormula where
+  getParameter = xform1 c_tformula_getparameter
+  setParameter = xform2 c_tformula_setparameter
+
+instance ITAtt3D TAtt3D where
+
+instance ITAttAxis TAttAxis where
+  setLabelColor = xform1 c_tattaxis_setlabelcolor
+  setLabelSize = xform1 c_tattaxis_setlabelsize
+  setTickLength = xform1 c_tattaxis_setticklength
+  setTitleOffset = xform1 c_tattaxis_settitleoffset
+  setNdivisions = xform2 c_tattaxis_setndivisions
+
+instance ITAttBBox TAttBBox where
+
+instance ITAttCanvas TAttCanvas where
+
+instance ITAttFill TAttFill where
+  setFillColor = xform1 c_tattfill_setfillcolor
+  setFillStyle = xform1 c_tattfill_setfillstyle
+
+instance ITAttImage TAttImage where
+
+instance ITAttLine TAttLine where
+  setLineColor = xform1 c_tattline_setlinecolor
+
+instance ITAttMarker TAttMarker where
+
+instance ITAttPad TAttPad where
+
+instance ITAttParticle TAttParticle where
+
+instance ITAttText TAttText where
+  setTextColor = xform1 c_tatttext_settextcolor
+  setTextAlign = xform1 c_tatttext_settextalign
+  setTextSize = xform1 c_tatttext_settextsize
+
+instance ITHStack THStack where
+
+instance ITF1 TF1 where
+
+instance ITGraph TGraph where
+
+instance ITGraphAsymmErrors TGraphAsymmErrors where
+
+instance ITCutG TCutG where
+
+instance ITGraphBentErrors TGraphBentErrors where
+
+instance ITGraphErrors TGraphErrors where
+
+instance ITGraphPolar TGraphPolar where
+
+instance ITGraphQQ TGraphQQ where
+
+instance ITEllipse TEllipse where
+
+instance ITArc TArc where
+
+instance ITCrown TCrown where
+
+instance ITLine TLine where
+
+instance ITArrow TArrow where
+
+instance ITGaxis TGaxis where
+
+instance ITShape TShape where
+
+instance ITBRIK TBRIK where
+
+instance ITTUBE TTUBE where
+
+instance ITPCON TPCON where
+
+instance ITSPHE TSPHE where
+
+instance ITXTRU TXTRU where
+
+instance ITBox TBox where
+
+instance ITPave TPave where
+
+instance ITPaveText TPaveText where
+
+instance ITDiamond TDiamond where
+
+instance ITPaveStats TPaveStats where
+
+instance ITPavesText TPavesText where
+
+instance ITLegend TLegend where
+
+instance ITPaveLabel TPaveLabel where
+
+instance ITPaveClass TPaveClass where
+
+instance ITWbox TWbox where
+  setBorderMode = xform1 c_twbox_setbordermode
+
+instance ITFrame TFrame where
+
+instance ITSliderBox TSliderBox where
+
+instance ITTree TTree where
+
+instance ITChain TChain where
+
+instance ITNtuple TNtuple where
+
+instance ITNtupleD TNtupleD where
+
+instance ITTreeSQL TTreeSQL where
+
+instance ITPolyLine TPolyLine where
+
+instance ITCurlyLine TCurlyLine where
+
+instance ITCurlyArc TCurlyArc where
+
+instance ITEfficiency TEfficiency where
+
+instance ITAxis TAxis where
+
+instance ITLatex TLatex where
+
+instance ITText TText where
+
+instance ITDirectory TDirectory where
+  close = xform1 c_tdirectory_close
+
+instance ITDirectoryFile TDirectoryFile where
+
+instance ITFile TFile where
+
+instance ITBranch TBranch where
+
+instance ITVirtualTreePlayer TVirtualTreePlayer where
+
+instance ITTreePlayer TTreePlayer where
+
+instance ITArray TArray where
+
+instance ITArrayC TArrayC where
+
+instance ITArrayD TArrayD where
+
+instance ITArrayF TArrayF where
+
+instance ITArrayI TArrayI where
+
+instance ITArrayL TArrayL where
+
+instance ITArrayL64 TArrayL64 where
+
+instance ITArrayS TArrayS where
+
+instance ITH1 TH1 where
+  add = xform2 c_th1_add
+  addBinContent = xform2 c_th1_addbincontent
+  chi2Test = xform3 c_th1_chi2test
+  computeIntegral = xform0 c_th1_computeintegral
+  directoryAutoAdd = xform1 c_th1_directoryautoadd
+  distancetoPrimitive = xform2 c_th1_distancetoprimitive
+  divide = xform5 c_th1_divide
+  drawCopy = xform1 c_th1_drawcopy
+  drawNormalized = xform2 c_th1_drawnormalized
+  drawPanel = xform0 c_th1_drawpanel
+  bufferEmpty = xform1 c_th1_bufferempty
+  eval = xform2 c_th1_eval
+  executeEvent = xform3 c_th1_executeevent
+  fFT = xform2 c_th1_fft
+  fill1 = xform1 c_th1_fill1
+  fillN = xform4 c_th1_filln
+  fillRandom = xform2 c_th1_fillrandom
+  findBin = xform3 c_th1_findbin
+  findFixBin = xform3 c_th1_findfixbin
+  findFirstBinAbove = xform2 c_th1_findfirstbinabove
+  findLastBinAbove = xform2 c_th1_findlastbinabove
+  fitPanel = xform0 c_th1_fitpanel
+  getNdivisions = xform1 c_th1_getndivisions
+  getAxisColor = xform1 c_th1_getaxiscolor
+  getLabelColor = xform1 c_th1_getlabelcolor
+  getLabelFont = xform1 c_th1_getlabelfont
+  getLabelOffset = xform1 c_th1_getlabeloffset
+  getLabelSize = xform1 c_th1_getlabelsize
+  getTitleFont = xform1 c_th1_gettitlefont
+  getTitleOffset = xform1 c_th1_gettitleoffset
+  getTitleSize = xform1 c_th1_gettitlesize
+  getTickLength = xform1 c_th1_getticklength
+  getBarOffset = xform0 c_th1_getbaroffset
+  getBarWidth = xform0 c_th1_getbarwidth
+  getContour = xform1 c_th1_getcontour
+  getContourLevel = xform1 c_th1_getcontourlevel
+  getContourLevelPad = xform1 c_th1_getcontourlevelpad
+  getBin = xform3 c_th1_getbin
+  getBinCenter = xform1 c_th1_getbincenter
+  getBinContent1 = xform1 c_th1_getbincontent1
+  getBinContent2 = xform2 c_th1_getbincontent2
+  getBinContent3 = xform3 c_th1_getbincontent3
+  getBinError1 = xform1 c_th1_getbinerror1
+  getBinError2 = xform2 c_th1_getbinerror2
+  getBinError3 = xform3 c_th1_getbinerror3
+  getBinLowEdge = xform1 c_th1_getbinlowedge
+  getBinWidth = xform1 c_th1_getbinwidth
+  getCellContent = xform2 c_th1_getcellcontent
+  getCellError = xform2 c_th1_getcellerror
+
+instance ITH2 TH2 where
+  fill2 = xform2 c_th2_fill2
+
+instance ITH3 TH3 where
+
+instance ITH1C TH1C where
+
+instance ITH1D TH1D where
+
+instance ITH1F TH1F where
+
+instance ITH1I TH1I where
+
+instance ITH1S TH1S where
+
+instance ITH2C TH2C where
+
+instance ITH2D TH2D where
+
+instance ITH2F TH2F where
+
+instance ITH2I TH2I where
+
+instance ITH2Poly TH2Poly where
+
+instance ITH2S TH2S where
+
+instance ITH3C TH3C where
+
+instance ITH3D TH3D where
+
+instance ITH3F TH3F where
+
+instance ITH3I TH3I where
+
+instance ITH3S TH3S where
+
+instance ITQObject TQObject where
+
+instance ITVirtualPad TVirtualPad where
+  getFrame = xform0 c_tvirtualpad_getframe
+  range = xform4 c_tvirtualpad_range
+
+instance ITPad TPad where
+
+instance ITButton TButton where
+
+instance ITGroupButton TGroupButton where
+
+instance ITCanvas TCanvas where
+
+instance ITDialogCanvas TDialogCanvas where
+
+instance ITInspectCanvas TInspectCanvas where
+
+instance ITEvePad TEvePad where
+
+instance ITSlider TSlider where
+
+instance ITApplication TApplication where
+  run = xform1 c_tapplication_run
+
+instance ITRint TRint where
+
+instance ITRandom TRandom where
+  gaus = xform2 c_trandom_gaus
+  uniform = xform2 c_trandom_uniform
+
+instance IDeletable TRandom where
+  delete = xform0 c_trandom_delete
+
+instance IDeletable TRint where
+  delete = xform0 c_trint_delete
+
+instance IDeletable TApplication where
+  delete = xform0 c_tapplication_delete
+
+instance IDeletable TSlider where
+  delete = xform0 c_tslider_delete
+
+instance IDeletable TEvePad where
+  delete = xform0 c_tevepad_delete
+
+instance IDeletable TInspectCanvas where
+  delete = xform0 c_tinspectcanvas_delete
+
+instance IDeletable TDialogCanvas where
+  delete = xform0 c_tdialogcanvas_delete
+
+instance IDeletable TCanvas where
+  delete = xform0 c_tcanvas_delete
+
+instance IDeletable TGroupButton where
+  delete = xform0 c_tgroupbutton_delete
+
+instance IDeletable TButton where
+  delete = xform0 c_tbutton_delete
+
+instance IDeletable TPad where
+  delete = xform0 c_tpad_delete
+
+instance IDeletable TVirtualPad where
+  delete = xform0 c_tvirtualpad_delete
+
+instance IDeletable TQObject where
+  delete = xform0 c_tqobject_delete
+
+instance IDeletable TH3S where
+  delete = xform0 c_th3s_delete
+
+instance IDeletable TH3I where
+  delete = xform0 c_th3i_delete
+
+instance IDeletable TH3F where
+  delete = xform0 c_th3f_delete
+
+instance IDeletable TH3D where
+  delete = xform0 c_th3d_delete
+
+instance IDeletable TH3C where
+  delete = xform0 c_th3c_delete
+
+instance IDeletable TH2S where
+  delete = xform0 c_th2s_delete
+
+instance IDeletable TH2Poly where
+  delete = xform0 c_th2poly_delete
+
+instance IDeletable TH2I where
+  delete = xform0 c_th2i_delete
+
+instance IDeletable TH2F where
+  delete = xform0 c_th2f_delete
+
+instance IDeletable TH2D where
+  delete = xform0 c_th2d_delete
+
+instance IDeletable TH2C where
+  delete = xform0 c_th2c_delete
+
+instance IDeletable TH1S where
+  delete = xform0 c_th1s_delete
+
+instance IDeletable TH1I where
+  delete = xform0 c_th1i_delete
+
+instance IDeletable TH1F where
+  delete = xform0 c_th1f_delete
+
+instance IDeletable TH1D where
+  delete = xform0 c_th1d_delete
+
+instance IDeletable TH1C where
+  delete = xform0 c_th1c_delete
+
+instance IDeletable TH3 where
+  delete = xform0 c_th3_delete
+
+instance IDeletable TH2 where
+  delete = xform0 c_th2_delete
+
+instance IDeletable TH1 where
+  delete = xform0 c_th1_delete
+
+instance IDeletable TArrayS where
+  delete = xform0 c_tarrays_delete
+
+instance IDeletable TArrayL64 where
+  delete = xform0 c_tarrayl64_delete
+
+instance IDeletable TArrayL where
+  delete = xform0 c_tarrayl_delete
+
+instance IDeletable TArrayI where
+  delete = xform0 c_tarrayi_delete
+
+instance IDeletable TArrayF where
+  delete = xform0 c_tarrayf_delete
+
+instance IDeletable TArrayD where
+  delete = xform0 c_tarrayd_delete
+
+instance IDeletable TArrayC where
+  delete = xform0 c_tarrayc_delete
+
+instance IDeletable TArray where
+  delete = xform0 c_tarray_delete
+
+instance IDeletable TTreePlayer where
+  delete = xform0 c_ttreeplayer_delete
+
+instance IDeletable TVirtualTreePlayer where
+  delete = xform0 c_tvirtualtreeplayer_delete
+
+instance IDeletable TBranch where
+  delete = xform0 c_tbranch_delete
+
+instance IDeletable TFile where
+  delete = xform0 c_tfile_delete
+
+instance IDeletable TDirectoryFile where
+  delete = xform0 c_tdirectoryfile_delete
+
+instance IDeletable TDirectory where
+  delete = xform0 c_tdirectory_delete
+
+instance IDeletable TText where
+  delete = xform0 c_ttext_delete
+
+instance IDeletable TLatex where
+  delete = xform0 c_tlatex_delete
+
+instance IDeletable TAxis where
+  delete = xform0 c_taxis_delete
+
+instance IDeletable TEfficiency where
+  delete = xform0 c_tefficiency_delete
+
+instance IDeletable TCurlyArc where
+  delete = xform0 c_tcurlyarc_delete
+
+instance IDeletable TCurlyLine where
+  delete = xform0 c_tcurlyline_delete
+
+instance IDeletable TPolyLine where
+  delete = xform0 c_tpolyline_delete
+
+instance IDeletable TTreeSQL where
+  delete = xform0 c_ttreesql_delete
+
+instance IDeletable TNtupleD where
+  delete = xform0 c_tntupled_delete
+
+instance IDeletable TNtuple where
+  delete = xform0 c_tntuple_delete
+
+instance IDeletable TChain where
+  delete = xform0 c_tchain_delete
+
+instance IDeletable TTree where
+  delete = xform0 c_ttree_delete
+
+instance IDeletable TSliderBox where
+  delete = xform0 c_tsliderbox_delete
+
+instance IDeletable TFrame where
+  delete = xform0 c_tframe_delete
+
+instance IDeletable TWbox where
+  delete = xform0 c_twbox_delete
+
+instance IDeletable TPaveClass where
+  delete = xform0 c_tpaveclass_delete
+
+instance IDeletable TPaveLabel where
+  delete = xform0 c_tpavelabel_delete
+
+instance IDeletable TLegend where
+  delete = xform0 c_tlegend_delete
+
+instance IDeletable TPavesText where
+  delete = xform0 c_tpavestext_delete
+
+instance IDeletable TPaveStats where
+  delete = xform0 c_tpavestats_delete
+
+instance IDeletable TDiamond where
+  delete = xform0 c_tdiamond_delete
+
+instance IDeletable TPaveText where
+  delete = xform0 c_tpavetext_delete
+
+instance IDeletable TPave where
+  delete = xform0 c_tpave_delete
+
+instance IDeletable TBox where
+  delete = xform0 c_tbox_delete
+
+instance IDeletable TXTRU where
+  delete = xform0 c_txtru_delete
+
+instance IDeletable TSPHE where
+  delete = xform0 c_tsphe_delete
+
+instance IDeletable TPCON where
+  delete = xform0 c_tpcon_delete
+
+instance IDeletable TTUBE where
+  delete = xform0 c_ttube_delete
+
+instance IDeletable TBRIK where
+  delete = xform0 c_tbrik_delete
+
+instance IDeletable TShape where
+  delete = xform0 c_tshape_delete
+
+instance IDeletable TGaxis where
+  delete = xform0 c_tgaxis_delete
+
+instance IDeletable TArrow where
+  delete = xform0 c_tarrow_delete
+
+instance IDeletable TLine where
+  delete = xform0 c_tline_delete
+
+instance IDeletable TCrown where
+  delete = xform0 c_tcrown_delete
+
+instance IDeletable TArc where
+  delete = xform0 c_tarc_delete
+
+instance IDeletable TEllipse where
+  delete = xform0 c_tellipse_delete
+
+instance IDeletable TGraphQQ where
+  delete = xform0 c_tgraphqq_delete
+
+instance IDeletable TGraphPolar where
+  delete = xform0 c_tgraphpolar_delete
+
+instance IDeletable TGraphErrors where
+  delete = xform0 c_tgrapherrors_delete
+
+instance IDeletable TGraphBentErrors where
+  delete = xform0 c_tgraphbenterrors_delete
+
+instance IDeletable TCutG where
+  delete = xform0 c_tcutg_delete
+
+instance IDeletable TGraphAsymmErrors where
+  delete = xform0 c_tgraphasymmerrors_delete
+
+instance IDeletable TGraph where
+  delete = xform0 c_tgraph_delete
+
+instance IDeletable TF1 where
+  delete = xform0 c_tf1_delete
+
+instance IDeletable THStack where
+  delete = xform0 c_thstack_delete
+
+instance IDeletable TAttText where
+  delete = xform0 c_tatttext_delete
+
+instance IDeletable TAttParticle where
+  delete = xform0 c_tattparticle_delete
+
+instance IDeletable TAttPad where
+  delete = xform0 c_tattpad_delete
+
+instance IDeletable TAttMarker where
+  delete = xform0 c_tattmarker_delete
+
+instance IDeletable TAttLine where
+  delete = xform0 c_tattline_delete
+
+instance IDeletable TAttImage where
+  delete = xform0 c_tattimage_delete
+
+instance IDeletable TAttFill where
+  delete = xform0 c_tattfill_delete
+
+instance IDeletable TAttCanvas where
+  delete = xform0 c_tattcanvas_delete
+
+instance IDeletable TAttBBox where
+  delete = xform0 c_tattbbox_delete
+
+instance IDeletable TAttAxis where
+  delete = xform0 c_tattaxis_delete
+
+instance IDeletable TAtt3D where
+  delete = xform0 c_tatt3d_delete
+
+instance IDeletable TFormula where
+  delete = xform0 c_tformula_delete
+
+instance IDeletable TNamed where
+  delete = xform0 c_tnamed_delete
+
+instance IDeletable TObject where
+  delete = xform0 c_tobject_delete
+
+instance ITApplication TRint where
+  run = xform1 c_trint_run
+
+instance ITArray TH3S where
+
+instance ITArray TH3I where
+
+instance ITArray TH3F where
+
+instance ITArray TH3D where
+
+instance ITArray TH3C where
+
+instance ITArray TH2S where
+
+instance ITArray TH2I where
+
+instance ITArray TH2F where
+
+instance ITArray TH2D where
+
+instance ITArray TH2C where
+
+instance ITArray TH1S where
+
+instance ITArray TH1I where
+
+instance ITArray TH1F where
+
+instance ITArray TH1D where
+
+instance ITArray TH1C where
+
+instance ITArray TArrayS where
+
+instance ITArray TArrayL64 where
+
+instance ITArray TArrayL where
+
+instance ITArray TArrayI where
+
+instance ITArray TArrayF where
+
+instance ITArray TArrayD where
+
+instance ITArray TArrayC where
+
+instance ITArrayC TH3C where
+
+instance ITArrayC TH2C where
+
+instance ITArrayC TH1C where
+
+instance ITArrayD TH3D where
+
+instance ITArrayD TH2D where
+
+instance ITArrayD TH1D where
+
+instance ITArrayF TH3F where
+
+instance ITArrayF TH2F where
+
+instance ITArrayF TH1F where
+
+instance ITArrayI TH3I where
+
+instance ITArrayI TH2I where
+
+instance ITArrayI TH1I where
+
+instance ITArrayS TH3S where
+
+instance ITArrayS TH2S where
+
+instance ITArrayS TH1S where
+
+instance ITAtt3D TH3S where
+
+instance ITAtt3D TH3I where
+
+instance ITAtt3D TH3F where
+
+instance ITAtt3D TH3D where
+
+instance ITAtt3D TH3C where
+
+instance ITAtt3D TH3 where
+
+instance ITAtt3D TXTRU where
+
+instance ITAtt3D TSPHE where
+
+instance ITAtt3D TPCON where
+
+instance ITAtt3D TTUBE where
+
+instance ITAtt3D TBRIK where
+
+instance ITAtt3D TShape where
+
+instance ITAttAxis TAxis where
+  setLabelColor = xform1 c_taxis_setlabelcolor
+  setLabelSize = xform1 c_taxis_setlabelsize
+  setTickLength = xform1 c_taxis_setticklength
+  setTitleOffset = xform1 c_taxis_settitleoffset
+  setNdivisions = xform2 c_taxis_setndivisions
+
+instance ITAttFill TSlider where
+  setFillColor = xform1 c_tslider_setfillcolor
+  setFillStyle = xform1 c_tslider_setfillstyle
+
+instance ITAttFill TEvePad where
+  setFillColor = xform1 c_tevepad_setfillcolor
+  setFillStyle = xform1 c_tevepad_setfillstyle
+
+instance ITAttFill TInspectCanvas where
+  setFillColor = xform1 c_tinspectcanvas_setfillcolor
+  setFillStyle = xform1 c_tinspectcanvas_setfillstyle
+
+instance ITAttFill TDialogCanvas where
+  setFillColor = xform1 c_tdialogcanvas_setfillcolor
+  setFillStyle = xform1 c_tdialogcanvas_setfillstyle
+
+instance ITAttFill TCanvas where
+  setFillColor = xform1 c_tcanvas_setfillcolor
+  setFillStyle = xform1 c_tcanvas_setfillstyle
+
+instance ITAttFill TGroupButton where
+  setFillColor = xform1 c_tgroupbutton_setfillcolor
+  setFillStyle = xform1 c_tgroupbutton_setfillstyle
+
+instance ITAttFill TButton where
+  setFillColor = xform1 c_tbutton_setfillcolor
+  setFillStyle = xform1 c_tbutton_setfillstyle
+
+instance ITAttFill TPad where
+  setFillColor = xform1 c_tpad_setfillcolor
+  setFillStyle = xform1 c_tpad_setfillstyle
+
+instance ITAttFill TVirtualPad where
+  setFillColor = xform1 c_tvirtualpad_setfillcolor
+  setFillStyle = xform1 c_tvirtualpad_setfillstyle
+
+instance ITAttFill TH3S where
+  setFillColor = xform1 c_th3s_setfillcolor
+  setFillStyle = xform1 c_th3s_setfillstyle
+
+instance ITAttFill TH3I where
+  setFillColor = xform1 c_th3i_setfillcolor
+  setFillStyle = xform1 c_th3i_setfillstyle
+
+instance ITAttFill TH3F where
+  setFillColor = xform1 c_th3f_setfillcolor
+  setFillStyle = xform1 c_th3f_setfillstyle
+
+instance ITAttFill TH3D where
+  setFillColor = xform1 c_th3d_setfillcolor
+  setFillStyle = xform1 c_th3d_setfillstyle
+
+instance ITAttFill TH3C where
+  setFillColor = xform1 c_th3c_setfillcolor
+  setFillStyle = xform1 c_th3c_setfillstyle
+
+instance ITAttFill TH2S where
+  setFillColor = xform1 c_th2s_setfillcolor
+  setFillStyle = xform1 c_th2s_setfillstyle
+
+instance ITAttFill TH2Poly where
+  setFillColor = xform1 c_th2poly_setfillcolor
+  setFillStyle = xform1 c_th2poly_setfillstyle
+
+instance ITAttFill TH2I where
+  setFillColor = xform1 c_th2i_setfillcolor
+  setFillStyle = xform1 c_th2i_setfillstyle
+
+instance ITAttFill TH2F where
+  setFillColor = xform1 c_th2f_setfillcolor
+  setFillStyle = xform1 c_th2f_setfillstyle
+
+instance ITAttFill TH2D where
+  setFillColor = xform1 c_th2d_setfillcolor
+  setFillStyle = xform1 c_th2d_setfillstyle
+
+instance ITAttFill TH2C where
+  setFillColor = xform1 c_th2c_setfillcolor
+  setFillStyle = xform1 c_th2c_setfillstyle
+
+instance ITAttFill TH1S where
+  setFillColor = xform1 c_th1s_setfillcolor
+  setFillStyle = xform1 c_th1s_setfillstyle
+
+instance ITAttFill TH1I where
+  setFillColor = xform1 c_th1i_setfillcolor
+  setFillStyle = xform1 c_th1i_setfillstyle
+
+instance ITAttFill TH1F where
+  setFillColor = xform1 c_th1f_setfillcolor
+  setFillStyle = xform1 c_th1f_setfillstyle
+
+instance ITAttFill TH1D where
+  setFillColor = xform1 c_th1d_setfillcolor
+  setFillStyle = xform1 c_th1d_setfillstyle
+
+instance ITAttFill TH1C where
+  setFillColor = xform1 c_th1c_setfillcolor
+  setFillStyle = xform1 c_th1c_setfillstyle
+
+instance ITAttFill TH3 where
+  setFillColor = xform1 c_th3_setfillcolor
+  setFillStyle = xform1 c_th3_setfillstyle
+
+instance ITAttFill TH2 where
+  setFillColor = xform1 c_th2_setfillcolor
+  setFillStyle = xform1 c_th2_setfillstyle
+
+instance ITAttFill TH1 where
+  setFillColor = xform1 c_th1_setfillcolor
+  setFillStyle = xform1 c_th1_setfillstyle
+
+instance ITAttFill TBranch where
+  setFillColor = xform1 c_tbranch_setfillcolor
+  setFillStyle = xform1 c_tbranch_setfillstyle
+
+instance ITAttFill TEfficiency where
+  setFillColor = xform1 c_tefficiency_setfillcolor
+  setFillStyle = xform1 c_tefficiency_setfillstyle
+
+instance ITAttFill TCurlyArc where
+  setFillColor = xform1 c_tcurlyarc_setfillcolor
+  setFillStyle = xform1 c_tcurlyarc_setfillstyle
+
+instance ITAttFill TCurlyLine where
+  setFillColor = xform1 c_tcurlyline_setfillcolor
+  setFillStyle = xform1 c_tcurlyline_setfillstyle
+
+instance ITAttFill TPolyLine where
+  setFillColor = xform1 c_tpolyline_setfillcolor
+  setFillStyle = xform1 c_tpolyline_setfillstyle
+
+instance ITAttFill TTreeSQL where
+  setFillColor = xform1 c_ttreesql_setfillcolor
+  setFillStyle = xform1 c_ttreesql_setfillstyle
+
+instance ITAttFill TNtupleD where
+  setFillColor = xform1 c_tntupled_setfillcolor
+  setFillStyle = xform1 c_tntupled_setfillstyle
+
+instance ITAttFill TNtuple where
+  setFillColor = xform1 c_tntuple_setfillcolor
+  setFillStyle = xform1 c_tntuple_setfillstyle
+
+instance ITAttFill TChain where
+  setFillColor = xform1 c_tchain_setfillcolor
+  setFillStyle = xform1 c_tchain_setfillstyle
+
+instance ITAttFill TTree where
+  setFillColor = xform1 c_ttree_setfillcolor
+  setFillStyle = xform1 c_ttree_setfillstyle
+
+instance ITAttFill TSliderBox where
+  setFillColor = xform1 c_tsliderbox_setfillcolor
+  setFillStyle = xform1 c_tsliderbox_setfillstyle
+
+instance ITAttFill TFrame where
+  setFillColor = xform1 c_tframe_setfillcolor
+  setFillStyle = xform1 c_tframe_setfillstyle
+
+instance ITAttFill TWbox where
+  setFillColor = xform1 c_twbox_setfillcolor
+  setFillStyle = xform1 c_twbox_setfillstyle
+
+instance ITAttFill TPaveClass where
+  setFillColor = xform1 c_tpaveclass_setfillcolor
+  setFillStyle = xform1 c_tpaveclass_setfillstyle
+
+instance ITAttFill TPaveLabel where
+  setFillColor = xform1 c_tpavelabel_setfillcolor
+  setFillStyle = xform1 c_tpavelabel_setfillstyle
+
+instance ITAttFill TLegend where
+  setFillColor = xform1 c_tlegend_setfillcolor
+  setFillStyle = xform1 c_tlegend_setfillstyle
+
+instance ITAttFill TPavesText where
+  setFillColor = xform1 c_tpavestext_setfillcolor
+  setFillStyle = xform1 c_tpavestext_setfillstyle
+
+instance ITAttFill TPaveStats where
+  setFillColor = xform1 c_tpavestats_setfillcolor
+  setFillStyle = xform1 c_tpavestats_setfillstyle
+
+instance ITAttFill TDiamond where
+  setFillColor = xform1 c_tdiamond_setfillcolor
+  setFillStyle = xform1 c_tdiamond_setfillstyle
+
+instance ITAttFill TPaveText where
+  setFillColor = xform1 c_tpavetext_setfillcolor
+  setFillStyle = xform1 c_tpavetext_setfillstyle
+
+instance ITAttFill TPave where
+  setFillColor = xform1 c_tpave_setfillcolor
+  setFillStyle = xform1 c_tpave_setfillstyle
+
+instance ITAttFill TBox where
+  setFillColor = xform1 c_tbox_setfillcolor
+  setFillStyle = xform1 c_tbox_setfillstyle
+
+instance ITAttFill TXTRU where
+  setFillColor = xform1 c_txtru_setfillcolor
+  setFillStyle = xform1 c_txtru_setfillstyle
+
+instance ITAttFill TSPHE where
+  setFillColor = xform1 c_tsphe_setfillcolor
+  setFillStyle = xform1 c_tsphe_setfillstyle
+
+instance ITAttFill TPCON where
+  setFillColor = xform1 c_tpcon_setfillcolor
+  setFillStyle = xform1 c_tpcon_setfillstyle
+
+instance ITAttFill TTUBE where
+  setFillColor = xform1 c_ttube_setfillcolor
+  setFillStyle = xform1 c_ttube_setfillstyle
+
+instance ITAttFill TBRIK where
+  setFillColor = xform1 c_tbrik_setfillcolor
+  setFillStyle = xform1 c_tbrik_setfillstyle
+
+instance ITAttFill TShape where
+  setFillColor = xform1 c_tshape_setfillcolor
+  setFillStyle = xform1 c_tshape_setfillstyle
+
+instance ITAttFill TArrow where
+  setFillColor = xform1 c_tarrow_setfillcolor
+  setFillStyle = xform1 c_tarrow_setfillstyle
+
+instance ITAttFill TCrown where
+  setFillColor = xform1 c_tcrown_setfillcolor
+  setFillStyle = xform1 c_tcrown_setfillstyle
+
+instance ITAttFill TArc where
+  setFillColor = xform1 c_tarc_setfillcolor
+  setFillStyle = xform1 c_tarc_setfillstyle
+
+instance ITAttFill TEllipse where
+  setFillColor = xform1 c_tellipse_setfillcolor
+  setFillStyle = xform1 c_tellipse_setfillstyle
+
+instance ITAttFill TGraphQQ where
+  setFillColor = xform1 c_tgraphqq_setfillcolor
+  setFillStyle = xform1 c_tgraphqq_setfillstyle
+
+instance ITAttFill TGraphPolar where
+  setFillColor = xform1 c_tgraphpolar_setfillcolor
+  setFillStyle = xform1 c_tgraphpolar_setfillstyle
+
+instance ITAttFill TGraphErrors where
+  setFillColor = xform1 c_tgrapherrors_setfillcolor
+  setFillStyle = xform1 c_tgrapherrors_setfillstyle
+
+instance ITAttFill TGraphBentErrors where
+  setFillColor = xform1 c_tgraphbenterrors_setfillcolor
+  setFillStyle = xform1 c_tgraphbenterrors_setfillstyle
+
+instance ITAttFill TCutG where
+  setFillColor = xform1 c_tcutg_setfillcolor
+  setFillStyle = xform1 c_tcutg_setfillstyle
+
+instance ITAttFill TGraphAsymmErrors where
+  setFillColor = xform1 c_tgraphasymmerrors_setfillcolor
+  setFillStyle = xform1 c_tgraphasymmerrors_setfillstyle
+
+instance ITAttFill TGraph where
+  setFillColor = xform1 c_tgraph_setfillcolor
+  setFillStyle = xform1 c_tgraph_setfillstyle
+
+instance ITAttFill TF1 where
+  setFillColor = xform1 c_tf1_setfillcolor
+  setFillStyle = xform1 c_tf1_setfillstyle
+
+instance ITAttLine TSlider where
+  setLineColor = xform1 c_tslider_setlinecolor
+
+instance ITAttLine TEvePad where
+  setLineColor = xform1 c_tevepad_setlinecolor
+
+instance ITAttLine TInspectCanvas where
+  setLineColor = xform1 c_tinspectcanvas_setlinecolor
+
+instance ITAttLine TDialogCanvas where
+  setLineColor = xform1 c_tdialogcanvas_setlinecolor
+
+instance ITAttLine TCanvas where
+  setLineColor = xform1 c_tcanvas_setlinecolor
+
+instance ITAttLine TGroupButton where
+  setLineColor = xform1 c_tgroupbutton_setlinecolor
+
+instance ITAttLine TButton where
+  setLineColor = xform1 c_tbutton_setlinecolor
+
+instance ITAttLine TPad where
+  setLineColor = xform1 c_tpad_setlinecolor
+
+instance ITAttLine TVirtualPad where
+  setLineColor = xform1 c_tvirtualpad_setlinecolor
+
+instance ITAttLine TH3S where
+  setLineColor = xform1 c_th3s_setlinecolor
+
+instance ITAttLine TH3I where
+  setLineColor = xform1 c_th3i_setlinecolor
+
+instance ITAttLine TH3F where
+  setLineColor = xform1 c_th3f_setlinecolor
+
+instance ITAttLine TH3D where
+  setLineColor = xform1 c_th3d_setlinecolor
+
+instance ITAttLine TH3C where
+  setLineColor = xform1 c_th3c_setlinecolor
+
+instance ITAttLine TH2S where
+  setLineColor = xform1 c_th2s_setlinecolor
+
+instance ITAttLine TH2Poly where
+  setLineColor = xform1 c_th2poly_setlinecolor
+
+instance ITAttLine TH2I where
+  setLineColor = xform1 c_th2i_setlinecolor
+
+instance ITAttLine TH2F where
+  setLineColor = xform1 c_th2f_setlinecolor
+
+instance ITAttLine TH2D where
+  setLineColor = xform1 c_th2d_setlinecolor
+
+instance ITAttLine TH2C where
+  setLineColor = xform1 c_th2c_setlinecolor
+
+instance ITAttLine TH1S where
+  setLineColor = xform1 c_th1s_setlinecolor
+
+instance ITAttLine TH1I where
+  setLineColor = xform1 c_th1i_setlinecolor
+
+instance ITAttLine TH1F where
+  setLineColor = xform1 c_th1f_setlinecolor
+
+instance ITAttLine TH1D where
+  setLineColor = xform1 c_th1d_setlinecolor
+
+instance ITAttLine TH1C where
+  setLineColor = xform1 c_th1c_setlinecolor
+
+instance ITAttLine TH3 where
+  setLineColor = xform1 c_th3_setlinecolor
+
+instance ITAttLine TH2 where
+  setLineColor = xform1 c_th2_setlinecolor
+
+instance ITAttLine TH1 where
+  setLineColor = xform1 c_th1_setlinecolor
+
+instance ITAttLine TLatex where
+  setLineColor = xform1 c_tlatex_setlinecolor
+
+instance ITAttLine TEfficiency where
+  setLineColor = xform1 c_tefficiency_setlinecolor
+
+instance ITAttLine TCurlyArc where
+  setLineColor = xform1 c_tcurlyarc_setlinecolor
+
+instance ITAttLine TCurlyLine where
+  setLineColor = xform1 c_tcurlyline_setlinecolor
+
+instance ITAttLine TPolyLine where
+  setLineColor = xform1 c_tpolyline_setlinecolor
+
+instance ITAttLine TTreeSQL where
+  setLineColor = xform1 c_ttreesql_setlinecolor
+
+instance ITAttLine TNtupleD where
+  setLineColor = xform1 c_tntupled_setlinecolor
+
+instance ITAttLine TNtuple where
+  setLineColor = xform1 c_tntuple_setlinecolor
+
+instance ITAttLine TChain where
+  setLineColor = xform1 c_tchain_setlinecolor
+
+instance ITAttLine TTree where
+  setLineColor = xform1 c_ttree_setlinecolor
+
+instance ITAttLine TSliderBox where
+  setLineColor = xform1 c_tsliderbox_setlinecolor
+
+instance ITAttLine TFrame where
+  setLineColor = xform1 c_tframe_setlinecolor
+
+instance ITAttLine TWbox where
+  setLineColor = xform1 c_twbox_setlinecolor
+
+instance ITAttLine TPaveClass where
+  setLineColor = xform1 c_tpaveclass_setlinecolor
+
+instance ITAttLine TPaveLabel where
+  setLineColor = xform1 c_tpavelabel_setlinecolor
+
+instance ITAttLine TLegend where
+  setLineColor = xform1 c_tlegend_setlinecolor
+
+instance ITAttLine TPavesText where
+  setLineColor = xform1 c_tpavestext_setlinecolor
+
+instance ITAttLine TPaveStats where
+  setLineColor = xform1 c_tpavestats_setlinecolor
+
+instance ITAttLine TDiamond where
+  setLineColor = xform1 c_tdiamond_setlinecolor
+
+instance ITAttLine TPaveText where
+  setLineColor = xform1 c_tpavetext_setlinecolor
+
+instance ITAttLine TPave where
+  setLineColor = xform1 c_tpave_setlinecolor
+
+instance ITAttLine TBox where
+  setLineColor = xform1 c_tbox_setlinecolor
+
+instance ITAttLine TXTRU where
+  setLineColor = xform1 c_txtru_setlinecolor
+
+instance ITAttLine TSPHE where
+  setLineColor = xform1 c_tsphe_setlinecolor
+
+instance ITAttLine TPCON where
+  setLineColor = xform1 c_tpcon_setlinecolor
+
+instance ITAttLine TTUBE where
+  setLineColor = xform1 c_ttube_setlinecolor
+
+instance ITAttLine TBRIK where
+  setLineColor = xform1 c_tbrik_setlinecolor
+
+instance ITAttLine TShape where
+  setLineColor = xform1 c_tshape_setlinecolor
+
+instance ITAttLine TGaxis where
+  setLineColor = xform1 c_tgaxis_setlinecolor
+
+instance ITAttLine TArrow where
+  setLineColor = xform1 c_tarrow_setlinecolor
+
+instance ITAttLine TLine where
+  setLineColor = xform1 c_tline_setlinecolor
+
+instance ITAttLine TCrown where
+  setLineColor = xform1 c_tcrown_setlinecolor
+
+instance ITAttLine TArc where
+  setLineColor = xform1 c_tarc_setlinecolor
+
+instance ITAttLine TEllipse where
+  setLineColor = xform1 c_tellipse_setlinecolor
+
+instance ITAttLine TGraphQQ where
+  setLineColor = xform1 c_tgraphqq_setlinecolor
+
+instance ITAttLine TGraphPolar where
+  setLineColor = xform1 c_tgraphpolar_setlinecolor
+
+instance ITAttLine TGraphErrors where
+  setLineColor = xform1 c_tgrapherrors_setlinecolor
+
+instance ITAttLine TGraphBentErrors where
+  setLineColor = xform1 c_tgraphbenterrors_setlinecolor
+
+instance ITAttLine TCutG where
+  setLineColor = xform1 c_tcutg_setlinecolor
+
+instance ITAttLine TGraphAsymmErrors where
+  setLineColor = xform1 c_tgraphasymmerrors_setlinecolor
+
+instance ITAttLine TGraph where
+  setLineColor = xform1 c_tgraph_setlinecolor
+
+instance ITAttLine TF1 where
+  setLineColor = xform1 c_tf1_setlinecolor
+
+instance ITAttMarker TH3S where
+
+instance ITAttMarker TH3I where
+
+instance ITAttMarker TH3F where
+
+instance ITAttMarker TH3D where
+
+instance ITAttMarker TH3C where
+
+instance ITAttMarker TH2S where
+
+instance ITAttMarker TH2Poly where
+
+instance ITAttMarker TH2I where
+
+instance ITAttMarker TH2F where
+
+instance ITAttMarker TH2D where
+
+instance ITAttMarker TH2C where
+
+instance ITAttMarker TH1S where
+
+instance ITAttMarker TH1I where
+
+instance ITAttMarker TH1F where
+
+instance ITAttMarker TH1D where
+
+instance ITAttMarker TH1C where
+
+instance ITAttMarker TH3 where
+
+instance ITAttMarker TH2 where
+
+instance ITAttMarker TH1 where
+
+instance ITAttMarker TEfficiency where
+
+instance ITAttMarker TTreeSQL where
+
+instance ITAttMarker TNtupleD where
+
+instance ITAttMarker TNtuple where
+
+instance ITAttMarker TChain where
+
+instance ITAttMarker TTree where
+
+instance ITAttMarker TGraphQQ where
+
+instance ITAttMarker TGraphPolar where
+
+instance ITAttMarker TGraphErrors where
+
+instance ITAttMarker TGraphBentErrors where
+
+instance ITAttMarker TCutG where
+
+instance ITAttMarker TGraphAsymmErrors where
+
+instance ITAttMarker TGraph where
+
+instance ITAttPad TSlider where
+
+instance ITAttPad TEvePad where
+
+instance ITAttPad TInspectCanvas where
+
+instance ITAttPad TDialogCanvas where
+
+instance ITAttPad TCanvas where
+
+instance ITAttPad TGroupButton where
+
+instance ITAttPad TButton where
+
+instance ITAttPad TPad where
+
+instance ITAttPad TVirtualPad where
+
+instance ITAttText TInspectCanvas where
+  setTextColor = xform1 c_tinspectcanvas_settextcolor
+  setTextAlign = xform1 c_tinspectcanvas_settextalign
+  setTextSize = xform1 c_tinspectcanvas_settextsize
+
+instance ITAttText TDialogCanvas where
+  setTextColor = xform1 c_tdialogcanvas_settextcolor
+  setTextAlign = xform1 c_tdialogcanvas_settextalign
+  setTextSize = xform1 c_tdialogcanvas_settextsize
+
+instance ITAttText TGroupButton where
+  setTextColor = xform1 c_tgroupbutton_settextcolor
+  setTextAlign = xform1 c_tgroupbutton_settextalign
+  setTextSize = xform1 c_tgroupbutton_settextsize
+
+instance ITAttText TButton where
+  setTextColor = xform1 c_tbutton_settextcolor
+  setTextAlign = xform1 c_tbutton_settextalign
+  setTextSize = xform1 c_tbutton_settextsize
+
+instance ITAttText TText where
+  setTextColor = xform1 c_ttext_settextcolor
+  setTextAlign = xform1 c_ttext_settextalign
+  setTextSize = xform1 c_ttext_settextsize
+
+instance ITAttText TLatex where
+  setTextColor = xform1 c_tlatex_settextcolor
+  setTextAlign = xform1 c_tlatex_settextalign
+  setTextSize = xform1 c_tlatex_settextsize
+
+instance ITAttText TPaveClass where
+  setTextColor = xform1 c_tpaveclass_settextcolor
+  setTextAlign = xform1 c_tpaveclass_settextalign
+  setTextSize = xform1 c_tpaveclass_settextsize
+
+instance ITAttText TPaveLabel where
+  setTextColor = xform1 c_tpavelabel_settextcolor
+  setTextAlign = xform1 c_tpavelabel_settextalign
+  setTextSize = xform1 c_tpavelabel_settextsize
+
+instance ITAttText TLegend where
+  setTextColor = xform1 c_tlegend_settextcolor
+  setTextAlign = xform1 c_tlegend_settextalign
+  setTextSize = xform1 c_tlegend_settextsize
+
+instance ITAttText TPavesText where
+  setTextColor = xform1 c_tpavestext_settextcolor
+  setTextAlign = xform1 c_tpavestext_settextalign
+  setTextSize = xform1 c_tpavestext_settextsize
+
+instance ITAttText TPaveStats where
+  setTextColor = xform1 c_tpavestats_settextcolor
+  setTextAlign = xform1 c_tpavestats_settextalign
+  setTextSize = xform1 c_tpavestats_settextsize
+
+instance ITAttText TDiamond where
+  setTextColor = xform1 c_tdiamond_settextcolor
+  setTextAlign = xform1 c_tdiamond_settextalign
+  setTextSize = xform1 c_tdiamond_settextsize
+
+instance ITAttText TPaveText where
+  setTextColor = xform1 c_tpavetext_settextcolor
+  setTextAlign = xform1 c_tpavetext_settextalign
+  setTextSize = xform1 c_tpavetext_settextsize
+
+instance ITAttText TGaxis where
+  setTextColor = xform1 c_tgaxis_settextcolor
+  setTextAlign = xform1 c_tgaxis_settextalign
+  setTextSize = xform1 c_tgaxis_settextsize
+
+instance ITBox TSliderBox where
+
+instance ITBox TFrame where
+
+instance ITBox TWbox where
+
+instance ITBox TPaveClass where
+
+instance ITBox TPaveLabel where
+
+instance ITBox TLegend where
+
+instance ITBox TPavesText where
+
+instance ITBox TPaveStats where
+
+instance ITBox TDiamond where
+
+instance ITBox TPaveText where
+
+instance ITBox TPave where
+
+instance ITButton TGroupButton where
+
+instance ITCanvas TInspectCanvas where
+
+instance ITCanvas TDialogCanvas where
+
+instance ITCurlyLine TCurlyArc where
+
+instance ITDirectory TFile where
+  close = xform1 c_tfile_close
+
+instance ITDirectory TDirectoryFile where
+  close = xform1 c_tdirectoryfile_close
+
+instance ITDirectoryFile TFile where
+
+instance ITEllipse TCrown where
+
+instance ITEllipse TArc where
+
+instance ITFormula TF1 where
+  getParameter = xform1 c_tf1_getparameter
+  setParameter = xform2 c_tf1_setparameter
+
+instance ITGraph TGraphQQ where
+
+instance ITGraph TGraphPolar where
+
+instance ITGraph TGraphErrors where
+
+instance ITGraph TGraphBentErrors where
+
+instance ITGraph TCutG where
+
+instance ITGraph TGraphAsymmErrors where
+
+instance ITGraphErrors TGraphPolar where
+
+instance ITH1 TH3S where
+  add = xform2 c_th3s_add
+  addBinContent = xform2 c_th3s_addbincontent
+  chi2Test = xform3 c_th3s_chi2test
+  computeIntegral = xform0 c_th3s_computeintegral
+  directoryAutoAdd = xform1 c_th3s_directoryautoadd
+  distancetoPrimitive = xform2 c_th3s_distancetoprimitive
+  divide = xform5 c_th3s_divide
+  drawCopy = xform1 c_th3s_drawcopy
+  drawNormalized = xform2 c_th3s_drawnormalized
+  drawPanel = xform0 c_th3s_drawpanel
+  bufferEmpty = xform1 c_th3s_bufferempty
+  eval = xform2 c_th3s_eval
+  executeEvent = xform3 c_th3s_executeevent
+  fFT = xform2 c_th3s_fft
+  fill1 = xform1 c_th3s_fill1
+  fillN = xform4 c_th3s_filln
+  fillRandom = xform2 c_th3s_fillrandom
+  findBin = xform3 c_th3s_findbin
+  findFixBin = xform3 c_th3s_findfixbin
+  findFirstBinAbove = xform2 c_th3s_findfirstbinabove
+  findLastBinAbove = xform2 c_th3s_findlastbinabove
+  fitPanel = xform0 c_th3s_fitpanel
+  getNdivisions = xform1 c_th3s_getndivisions
+  getAxisColor = xform1 c_th3s_getaxiscolor
+  getLabelColor = xform1 c_th3s_getlabelcolor
+  getLabelFont = xform1 c_th3s_getlabelfont
+  getLabelOffset = xform1 c_th3s_getlabeloffset
+  getLabelSize = xform1 c_th3s_getlabelsize
+  getTitleFont = xform1 c_th3s_gettitlefont
+  getTitleOffset = xform1 c_th3s_gettitleoffset
+  getTitleSize = xform1 c_th3s_gettitlesize
+  getTickLength = xform1 c_th3s_getticklength
+  getBarOffset = xform0 c_th3s_getbaroffset
+  getBarWidth = xform0 c_th3s_getbarwidth
+  getContour = xform1 c_th3s_getcontour
+  getContourLevel = xform1 c_th3s_getcontourlevel
+  getContourLevelPad = xform1 c_th3s_getcontourlevelpad
+  getBin = xform3 c_th3s_getbin
+  getBinCenter = xform1 c_th3s_getbincenter
+  getBinContent1 = xform1 c_th3s_getbincontent1
+  getBinContent2 = xform2 c_th3s_getbincontent2
+  getBinContent3 = xform3 c_th3s_getbincontent3
+  getBinError1 = xform1 c_th3s_getbinerror1
+  getBinError2 = xform2 c_th3s_getbinerror2
+  getBinError3 = xform3 c_th3s_getbinerror3
+  getBinLowEdge = xform1 c_th3s_getbinlowedge
+  getBinWidth = xform1 c_th3s_getbinwidth
+  getCellContent = xform2 c_th3s_getcellcontent
+  getCellError = xform2 c_th3s_getcellerror
+
+instance ITH1 TH3I where
+  add = xform2 c_th3i_add
+  addBinContent = xform2 c_th3i_addbincontent
+  chi2Test = xform3 c_th3i_chi2test
+  computeIntegral = xform0 c_th3i_computeintegral
+  directoryAutoAdd = xform1 c_th3i_directoryautoadd
+  distancetoPrimitive = xform2 c_th3i_distancetoprimitive
+  divide = xform5 c_th3i_divide
+  drawCopy = xform1 c_th3i_drawcopy
+  drawNormalized = xform2 c_th3i_drawnormalized
+  drawPanel = xform0 c_th3i_drawpanel
+  bufferEmpty = xform1 c_th3i_bufferempty
+  eval = xform2 c_th3i_eval
+  executeEvent = xform3 c_th3i_executeevent
+  fFT = xform2 c_th3i_fft
+  fill1 = xform1 c_th3i_fill1
+  fillN = xform4 c_th3i_filln
+  fillRandom = xform2 c_th3i_fillrandom
+  findBin = xform3 c_th3i_findbin
+  findFixBin = xform3 c_th3i_findfixbin
+  findFirstBinAbove = xform2 c_th3i_findfirstbinabove
+  findLastBinAbove = xform2 c_th3i_findlastbinabove
+  fitPanel = xform0 c_th3i_fitpanel
+  getNdivisions = xform1 c_th3i_getndivisions
+  getAxisColor = xform1 c_th3i_getaxiscolor
+  getLabelColor = xform1 c_th3i_getlabelcolor
+  getLabelFont = xform1 c_th3i_getlabelfont
+  getLabelOffset = xform1 c_th3i_getlabeloffset
+  getLabelSize = xform1 c_th3i_getlabelsize
+  getTitleFont = xform1 c_th3i_gettitlefont
+  getTitleOffset = xform1 c_th3i_gettitleoffset
+  getTitleSize = xform1 c_th3i_gettitlesize
+  getTickLength = xform1 c_th3i_getticklength
+  getBarOffset = xform0 c_th3i_getbaroffset
+  getBarWidth = xform0 c_th3i_getbarwidth
+  getContour = xform1 c_th3i_getcontour
+  getContourLevel = xform1 c_th3i_getcontourlevel
+  getContourLevelPad = xform1 c_th3i_getcontourlevelpad
+  getBin = xform3 c_th3i_getbin
+  getBinCenter = xform1 c_th3i_getbincenter
+  getBinContent1 = xform1 c_th3i_getbincontent1
+  getBinContent2 = xform2 c_th3i_getbincontent2
+  getBinContent3 = xform3 c_th3i_getbincontent3
+  getBinError1 = xform1 c_th3i_getbinerror1
+  getBinError2 = xform2 c_th3i_getbinerror2
+  getBinError3 = xform3 c_th3i_getbinerror3
+  getBinLowEdge = xform1 c_th3i_getbinlowedge
+  getBinWidth = xform1 c_th3i_getbinwidth
+  getCellContent = xform2 c_th3i_getcellcontent
+  getCellError = xform2 c_th3i_getcellerror
+
+instance ITH1 TH3F where
+  add = xform2 c_th3f_add
+  addBinContent = xform2 c_th3f_addbincontent
+  chi2Test = xform3 c_th3f_chi2test
+  computeIntegral = xform0 c_th3f_computeintegral
+  directoryAutoAdd = xform1 c_th3f_directoryautoadd
+  distancetoPrimitive = xform2 c_th3f_distancetoprimitive
+  divide = xform5 c_th3f_divide
+  drawCopy = xform1 c_th3f_drawcopy
+  drawNormalized = xform2 c_th3f_drawnormalized
+  drawPanel = xform0 c_th3f_drawpanel
+  bufferEmpty = xform1 c_th3f_bufferempty
+  eval = xform2 c_th3f_eval
+  executeEvent = xform3 c_th3f_executeevent
+  fFT = xform2 c_th3f_fft
+  fill1 = xform1 c_th3f_fill1
+  fillN = xform4 c_th3f_filln
+  fillRandom = xform2 c_th3f_fillrandom
+  findBin = xform3 c_th3f_findbin
+  findFixBin = xform3 c_th3f_findfixbin
+  findFirstBinAbove = xform2 c_th3f_findfirstbinabove
+  findLastBinAbove = xform2 c_th3f_findlastbinabove
+  fitPanel = xform0 c_th3f_fitpanel
+  getNdivisions = xform1 c_th3f_getndivisions
+  getAxisColor = xform1 c_th3f_getaxiscolor
+  getLabelColor = xform1 c_th3f_getlabelcolor
+  getLabelFont = xform1 c_th3f_getlabelfont
+  getLabelOffset = xform1 c_th3f_getlabeloffset
+  getLabelSize = xform1 c_th3f_getlabelsize
+  getTitleFont = xform1 c_th3f_gettitlefont
+  getTitleOffset = xform1 c_th3f_gettitleoffset
+  getTitleSize = xform1 c_th3f_gettitlesize
+  getTickLength = xform1 c_th3f_getticklength
+  getBarOffset = xform0 c_th3f_getbaroffset
+  getBarWidth = xform0 c_th3f_getbarwidth
+  getContour = xform1 c_th3f_getcontour
+  getContourLevel = xform1 c_th3f_getcontourlevel
+  getContourLevelPad = xform1 c_th3f_getcontourlevelpad
+  getBin = xform3 c_th3f_getbin
+  getBinCenter = xform1 c_th3f_getbincenter
+  getBinContent1 = xform1 c_th3f_getbincontent1
+  getBinContent2 = xform2 c_th3f_getbincontent2
+  getBinContent3 = xform3 c_th3f_getbincontent3
+  getBinError1 = xform1 c_th3f_getbinerror1
+  getBinError2 = xform2 c_th3f_getbinerror2
+  getBinError3 = xform3 c_th3f_getbinerror3
+  getBinLowEdge = xform1 c_th3f_getbinlowedge
+  getBinWidth = xform1 c_th3f_getbinwidth
+  getCellContent = xform2 c_th3f_getcellcontent
+  getCellError = xform2 c_th3f_getcellerror
+
+instance ITH1 TH3D where
+  add = xform2 c_th3d_add
+  addBinContent = xform2 c_th3d_addbincontent
+  chi2Test = xform3 c_th3d_chi2test
+  computeIntegral = xform0 c_th3d_computeintegral
+  directoryAutoAdd = xform1 c_th3d_directoryautoadd
+  distancetoPrimitive = xform2 c_th3d_distancetoprimitive
+  divide = xform5 c_th3d_divide
+  drawCopy = xform1 c_th3d_drawcopy
+  drawNormalized = xform2 c_th3d_drawnormalized
+  drawPanel = xform0 c_th3d_drawpanel
+  bufferEmpty = xform1 c_th3d_bufferempty
+  eval = xform2 c_th3d_eval
+  executeEvent = xform3 c_th3d_executeevent
+  fFT = xform2 c_th3d_fft
+  fill1 = xform1 c_th3d_fill1
+  fillN = xform4 c_th3d_filln
+  fillRandom = xform2 c_th3d_fillrandom
+  findBin = xform3 c_th3d_findbin
+  findFixBin = xform3 c_th3d_findfixbin
+  findFirstBinAbove = xform2 c_th3d_findfirstbinabove
+  findLastBinAbove = xform2 c_th3d_findlastbinabove
+  fitPanel = xform0 c_th3d_fitpanel
+  getNdivisions = xform1 c_th3d_getndivisions
+  getAxisColor = xform1 c_th3d_getaxiscolor
+  getLabelColor = xform1 c_th3d_getlabelcolor
+  getLabelFont = xform1 c_th3d_getlabelfont
+  getLabelOffset = xform1 c_th3d_getlabeloffset
+  getLabelSize = xform1 c_th3d_getlabelsize
+  getTitleFont = xform1 c_th3d_gettitlefont
+  getTitleOffset = xform1 c_th3d_gettitleoffset
+  getTitleSize = xform1 c_th3d_gettitlesize
+  getTickLength = xform1 c_th3d_getticklength
+  getBarOffset = xform0 c_th3d_getbaroffset
+  getBarWidth = xform0 c_th3d_getbarwidth
+  getContour = xform1 c_th3d_getcontour
+  getContourLevel = xform1 c_th3d_getcontourlevel
+  getContourLevelPad = xform1 c_th3d_getcontourlevelpad
+  getBin = xform3 c_th3d_getbin
+  getBinCenter = xform1 c_th3d_getbincenter
+  getBinContent1 = xform1 c_th3d_getbincontent1
+  getBinContent2 = xform2 c_th3d_getbincontent2
+  getBinContent3 = xform3 c_th3d_getbincontent3
+  getBinError1 = xform1 c_th3d_getbinerror1
+  getBinError2 = xform2 c_th3d_getbinerror2
+  getBinError3 = xform3 c_th3d_getbinerror3
+  getBinLowEdge = xform1 c_th3d_getbinlowedge
+  getBinWidth = xform1 c_th3d_getbinwidth
+  getCellContent = xform2 c_th3d_getcellcontent
+  getCellError = xform2 c_th3d_getcellerror
+
+instance ITH1 TH3C where
+  add = xform2 c_th3c_add
+  addBinContent = xform2 c_th3c_addbincontent
+  chi2Test = xform3 c_th3c_chi2test
+  computeIntegral = xform0 c_th3c_computeintegral
+  directoryAutoAdd = xform1 c_th3c_directoryautoadd
+  distancetoPrimitive = xform2 c_th3c_distancetoprimitive
+  divide = xform5 c_th3c_divide
+  drawCopy = xform1 c_th3c_drawcopy
+  drawNormalized = xform2 c_th3c_drawnormalized
+  drawPanel = xform0 c_th3c_drawpanel
+  bufferEmpty = xform1 c_th3c_bufferempty
+  eval = xform2 c_th3c_eval
+  executeEvent = xform3 c_th3c_executeevent
+  fFT = xform2 c_th3c_fft
+  fill1 = xform1 c_th3c_fill1
+  fillN = xform4 c_th3c_filln
+  fillRandom = xform2 c_th3c_fillrandom
+  findBin = xform3 c_th3c_findbin
+  findFixBin = xform3 c_th3c_findfixbin
+  findFirstBinAbove = xform2 c_th3c_findfirstbinabove
+  findLastBinAbove = xform2 c_th3c_findlastbinabove
+  fitPanel = xform0 c_th3c_fitpanel
+  getNdivisions = xform1 c_th3c_getndivisions
+  getAxisColor = xform1 c_th3c_getaxiscolor
+  getLabelColor = xform1 c_th3c_getlabelcolor
+  getLabelFont = xform1 c_th3c_getlabelfont
+  getLabelOffset = xform1 c_th3c_getlabeloffset
+  getLabelSize = xform1 c_th3c_getlabelsize
+  getTitleFont = xform1 c_th3c_gettitlefont
+  getTitleOffset = xform1 c_th3c_gettitleoffset
+  getTitleSize = xform1 c_th3c_gettitlesize
+  getTickLength = xform1 c_th3c_getticklength
+  getBarOffset = xform0 c_th3c_getbaroffset
+  getBarWidth = xform0 c_th3c_getbarwidth
+  getContour = xform1 c_th3c_getcontour
+  getContourLevel = xform1 c_th3c_getcontourlevel
+  getContourLevelPad = xform1 c_th3c_getcontourlevelpad
+  getBin = xform3 c_th3c_getbin
+  getBinCenter = xform1 c_th3c_getbincenter
+  getBinContent1 = xform1 c_th3c_getbincontent1
+  getBinContent2 = xform2 c_th3c_getbincontent2
+  getBinContent3 = xform3 c_th3c_getbincontent3
+  getBinError1 = xform1 c_th3c_getbinerror1
+  getBinError2 = xform2 c_th3c_getbinerror2
+  getBinError3 = xform3 c_th3c_getbinerror3
+  getBinLowEdge = xform1 c_th3c_getbinlowedge
+  getBinWidth = xform1 c_th3c_getbinwidth
+  getCellContent = xform2 c_th3c_getcellcontent
+  getCellError = xform2 c_th3c_getcellerror
+
+instance ITH1 TH2S where
+  add = xform2 c_th2s_add
+  addBinContent = xform2 c_th2s_addbincontent
+  chi2Test = xform3 c_th2s_chi2test
+  computeIntegral = xform0 c_th2s_computeintegral
+  directoryAutoAdd = xform1 c_th2s_directoryautoadd
+  distancetoPrimitive = xform2 c_th2s_distancetoprimitive
+  divide = xform5 c_th2s_divide
+  drawCopy = xform1 c_th2s_drawcopy
+  drawNormalized = xform2 c_th2s_drawnormalized
+  drawPanel = xform0 c_th2s_drawpanel
+  bufferEmpty = xform1 c_th2s_bufferempty
+  eval = xform2 c_th2s_eval
+  executeEvent = xform3 c_th2s_executeevent
+  fFT = xform2 c_th2s_fft
+  fill1 = xform1 c_th2s_fill1
+  fillN = xform4 c_th2s_filln
+  fillRandom = xform2 c_th2s_fillrandom
+  findBin = xform3 c_th2s_findbin
+  findFixBin = xform3 c_th2s_findfixbin
+  findFirstBinAbove = xform2 c_th2s_findfirstbinabove
+  findLastBinAbove = xform2 c_th2s_findlastbinabove
+  fitPanel = xform0 c_th2s_fitpanel
+  getNdivisions = xform1 c_th2s_getndivisions
+  getAxisColor = xform1 c_th2s_getaxiscolor
+  getLabelColor = xform1 c_th2s_getlabelcolor
+  getLabelFont = xform1 c_th2s_getlabelfont
+  getLabelOffset = xform1 c_th2s_getlabeloffset
+  getLabelSize = xform1 c_th2s_getlabelsize
+  getTitleFont = xform1 c_th2s_gettitlefont
+  getTitleOffset = xform1 c_th2s_gettitleoffset
+  getTitleSize = xform1 c_th2s_gettitlesize
+  getTickLength = xform1 c_th2s_getticklength
+  getBarOffset = xform0 c_th2s_getbaroffset
+  getBarWidth = xform0 c_th2s_getbarwidth
+  getContour = xform1 c_th2s_getcontour
+  getContourLevel = xform1 c_th2s_getcontourlevel
+  getContourLevelPad = xform1 c_th2s_getcontourlevelpad
+  getBin = xform3 c_th2s_getbin
+  getBinCenter = xform1 c_th2s_getbincenter
+  getBinContent1 = xform1 c_th2s_getbincontent1
+  getBinContent2 = xform2 c_th2s_getbincontent2
+  getBinContent3 = xform3 c_th2s_getbincontent3
+  getBinError1 = xform1 c_th2s_getbinerror1
+  getBinError2 = xform2 c_th2s_getbinerror2
+  getBinError3 = xform3 c_th2s_getbinerror3
+  getBinLowEdge = xform1 c_th2s_getbinlowedge
+  getBinWidth = xform1 c_th2s_getbinwidth
+  getCellContent = xform2 c_th2s_getcellcontent
+  getCellError = xform2 c_th2s_getcellerror
+
+instance ITH1 TH2Poly where
+  add = xform2 c_th2poly_add
+  addBinContent = xform2 c_th2poly_addbincontent
+  chi2Test = xform3 c_th2poly_chi2test
+  computeIntegral = xform0 c_th2poly_computeintegral
+  directoryAutoAdd = xform1 c_th2poly_directoryautoadd
+  distancetoPrimitive = xform2 c_th2poly_distancetoprimitive
+  divide = xform5 c_th2poly_divide
+  drawCopy = xform1 c_th2poly_drawcopy
+  drawNormalized = xform2 c_th2poly_drawnormalized
+  drawPanel = xform0 c_th2poly_drawpanel
+  bufferEmpty = xform1 c_th2poly_bufferempty
+  eval = xform2 c_th2poly_eval
+  executeEvent = xform3 c_th2poly_executeevent
+  fFT = xform2 c_th2poly_fft
+  fill1 = xform1 c_th2poly_fill1
+  fillN = xform4 c_th2poly_filln
+  fillRandom = xform2 c_th2poly_fillrandom
+  findBin = xform3 c_th2poly_findbin
+  findFixBin = xform3 c_th2poly_findfixbin
+  findFirstBinAbove = xform2 c_th2poly_findfirstbinabove
+  findLastBinAbove = xform2 c_th2poly_findlastbinabove
+  fitPanel = xform0 c_th2poly_fitpanel
+  getNdivisions = xform1 c_th2poly_getndivisions
+  getAxisColor = xform1 c_th2poly_getaxiscolor
+  getLabelColor = xform1 c_th2poly_getlabelcolor
+  getLabelFont = xform1 c_th2poly_getlabelfont
+  getLabelOffset = xform1 c_th2poly_getlabeloffset
+  getLabelSize = xform1 c_th2poly_getlabelsize
+  getTitleFont = xform1 c_th2poly_gettitlefont
+  getTitleOffset = xform1 c_th2poly_gettitleoffset
+  getTitleSize = xform1 c_th2poly_gettitlesize
+  getTickLength = xform1 c_th2poly_getticklength
+  getBarOffset = xform0 c_th2poly_getbaroffset
+  getBarWidth = xform0 c_th2poly_getbarwidth
+  getContour = xform1 c_th2poly_getcontour
+  getContourLevel = xform1 c_th2poly_getcontourlevel
+  getContourLevelPad = xform1 c_th2poly_getcontourlevelpad
+  getBin = xform3 c_th2poly_getbin
+  getBinCenter = xform1 c_th2poly_getbincenter
+  getBinContent1 = xform1 c_th2poly_getbincontent1
+  getBinContent2 = xform2 c_th2poly_getbincontent2
+  getBinContent3 = xform3 c_th2poly_getbincontent3
+  getBinError1 = xform1 c_th2poly_getbinerror1
+  getBinError2 = xform2 c_th2poly_getbinerror2
+  getBinError3 = xform3 c_th2poly_getbinerror3
+  getBinLowEdge = xform1 c_th2poly_getbinlowedge
+  getBinWidth = xform1 c_th2poly_getbinwidth
+  getCellContent = xform2 c_th2poly_getcellcontent
+  getCellError = xform2 c_th2poly_getcellerror
+
+instance ITH1 TH2I where
+  add = xform2 c_th2i_add
+  addBinContent = xform2 c_th2i_addbincontent
+  chi2Test = xform3 c_th2i_chi2test
+  computeIntegral = xform0 c_th2i_computeintegral
+  directoryAutoAdd = xform1 c_th2i_directoryautoadd
+  distancetoPrimitive = xform2 c_th2i_distancetoprimitive
+  divide = xform5 c_th2i_divide
+  drawCopy = xform1 c_th2i_drawcopy
+  drawNormalized = xform2 c_th2i_drawnormalized
+  drawPanel = xform0 c_th2i_drawpanel
+  bufferEmpty = xform1 c_th2i_bufferempty
+  eval = xform2 c_th2i_eval
+  executeEvent = xform3 c_th2i_executeevent
+  fFT = xform2 c_th2i_fft
+  fill1 = xform1 c_th2i_fill1
+  fillN = xform4 c_th2i_filln
+  fillRandom = xform2 c_th2i_fillrandom
+  findBin = xform3 c_th2i_findbin
+  findFixBin = xform3 c_th2i_findfixbin
+  findFirstBinAbove = xform2 c_th2i_findfirstbinabove
+  findLastBinAbove = xform2 c_th2i_findlastbinabove
+  fitPanel = xform0 c_th2i_fitpanel
+  getNdivisions = xform1 c_th2i_getndivisions
+  getAxisColor = xform1 c_th2i_getaxiscolor
+  getLabelColor = xform1 c_th2i_getlabelcolor
+  getLabelFont = xform1 c_th2i_getlabelfont
+  getLabelOffset = xform1 c_th2i_getlabeloffset
+  getLabelSize = xform1 c_th2i_getlabelsize
+  getTitleFont = xform1 c_th2i_gettitlefont
+  getTitleOffset = xform1 c_th2i_gettitleoffset
+  getTitleSize = xform1 c_th2i_gettitlesize
+  getTickLength = xform1 c_th2i_getticklength
+  getBarOffset = xform0 c_th2i_getbaroffset
+  getBarWidth = xform0 c_th2i_getbarwidth
+  getContour = xform1 c_th2i_getcontour
+  getContourLevel = xform1 c_th2i_getcontourlevel
+  getContourLevelPad = xform1 c_th2i_getcontourlevelpad
+  getBin = xform3 c_th2i_getbin
+  getBinCenter = xform1 c_th2i_getbincenter
+  getBinContent1 = xform1 c_th2i_getbincontent1
+  getBinContent2 = xform2 c_th2i_getbincontent2
+  getBinContent3 = xform3 c_th2i_getbincontent3
+  getBinError1 = xform1 c_th2i_getbinerror1
+  getBinError2 = xform2 c_th2i_getbinerror2
+  getBinError3 = xform3 c_th2i_getbinerror3
+  getBinLowEdge = xform1 c_th2i_getbinlowedge
+  getBinWidth = xform1 c_th2i_getbinwidth
+  getCellContent = xform2 c_th2i_getcellcontent
+  getCellError = xform2 c_th2i_getcellerror
+
+instance ITH1 TH2F where
+  add = xform2 c_th2f_add
+  addBinContent = xform2 c_th2f_addbincontent
+  chi2Test = xform3 c_th2f_chi2test
+  computeIntegral = xform0 c_th2f_computeintegral
+  directoryAutoAdd = xform1 c_th2f_directoryautoadd
+  distancetoPrimitive = xform2 c_th2f_distancetoprimitive
+  divide = xform5 c_th2f_divide
+  drawCopy = xform1 c_th2f_drawcopy
+  drawNormalized = xform2 c_th2f_drawnormalized
+  drawPanel = xform0 c_th2f_drawpanel
+  bufferEmpty = xform1 c_th2f_bufferempty
+  eval = xform2 c_th2f_eval
+  executeEvent = xform3 c_th2f_executeevent
+  fFT = xform2 c_th2f_fft
+  fill1 = xform1 c_th2f_fill1
+  fillN = xform4 c_th2f_filln
+  fillRandom = xform2 c_th2f_fillrandom
+  findBin = xform3 c_th2f_findbin
+  findFixBin = xform3 c_th2f_findfixbin
+  findFirstBinAbove = xform2 c_th2f_findfirstbinabove
+  findLastBinAbove = xform2 c_th2f_findlastbinabove
+  fitPanel = xform0 c_th2f_fitpanel
+  getNdivisions = xform1 c_th2f_getndivisions
+  getAxisColor = xform1 c_th2f_getaxiscolor
+  getLabelColor = xform1 c_th2f_getlabelcolor
+  getLabelFont = xform1 c_th2f_getlabelfont
+  getLabelOffset = xform1 c_th2f_getlabeloffset
+  getLabelSize = xform1 c_th2f_getlabelsize
+  getTitleFont = xform1 c_th2f_gettitlefont
+  getTitleOffset = xform1 c_th2f_gettitleoffset
+  getTitleSize = xform1 c_th2f_gettitlesize
+  getTickLength = xform1 c_th2f_getticklength
+  getBarOffset = xform0 c_th2f_getbaroffset
+  getBarWidth = xform0 c_th2f_getbarwidth
+  getContour = xform1 c_th2f_getcontour
+  getContourLevel = xform1 c_th2f_getcontourlevel
+  getContourLevelPad = xform1 c_th2f_getcontourlevelpad
+  getBin = xform3 c_th2f_getbin
+  getBinCenter = xform1 c_th2f_getbincenter
+  getBinContent1 = xform1 c_th2f_getbincontent1
+  getBinContent2 = xform2 c_th2f_getbincontent2
+  getBinContent3 = xform3 c_th2f_getbincontent3
+  getBinError1 = xform1 c_th2f_getbinerror1
+  getBinError2 = xform2 c_th2f_getbinerror2
+  getBinError3 = xform3 c_th2f_getbinerror3
+  getBinLowEdge = xform1 c_th2f_getbinlowedge
+  getBinWidth = xform1 c_th2f_getbinwidth
+  getCellContent = xform2 c_th2f_getcellcontent
+  getCellError = xform2 c_th2f_getcellerror
+
+instance ITH1 TH2D where
+  add = xform2 c_th2d_add
+  addBinContent = xform2 c_th2d_addbincontent
+  chi2Test = xform3 c_th2d_chi2test
+  computeIntegral = xform0 c_th2d_computeintegral
+  directoryAutoAdd = xform1 c_th2d_directoryautoadd
+  distancetoPrimitive = xform2 c_th2d_distancetoprimitive
+  divide = xform5 c_th2d_divide
+  drawCopy = xform1 c_th2d_drawcopy
+  drawNormalized = xform2 c_th2d_drawnormalized
+  drawPanel = xform0 c_th2d_drawpanel
+  bufferEmpty = xform1 c_th2d_bufferempty
+  eval = xform2 c_th2d_eval
+  executeEvent = xform3 c_th2d_executeevent
+  fFT = xform2 c_th2d_fft
+  fill1 = xform1 c_th2d_fill1
+  fillN = xform4 c_th2d_filln
+  fillRandom = xform2 c_th2d_fillrandom
+  findBin = xform3 c_th2d_findbin
+  findFixBin = xform3 c_th2d_findfixbin
+  findFirstBinAbove = xform2 c_th2d_findfirstbinabove
+  findLastBinAbove = xform2 c_th2d_findlastbinabove
+  fitPanel = xform0 c_th2d_fitpanel
+  getNdivisions = xform1 c_th2d_getndivisions
+  getAxisColor = xform1 c_th2d_getaxiscolor
+  getLabelColor = xform1 c_th2d_getlabelcolor
+  getLabelFont = xform1 c_th2d_getlabelfont
+  getLabelOffset = xform1 c_th2d_getlabeloffset
+  getLabelSize = xform1 c_th2d_getlabelsize
+  getTitleFont = xform1 c_th2d_gettitlefont
+  getTitleOffset = xform1 c_th2d_gettitleoffset
+  getTitleSize = xform1 c_th2d_gettitlesize
+  getTickLength = xform1 c_th2d_getticklength
+  getBarOffset = xform0 c_th2d_getbaroffset
+  getBarWidth = xform0 c_th2d_getbarwidth
+  getContour = xform1 c_th2d_getcontour
+  getContourLevel = xform1 c_th2d_getcontourlevel
+  getContourLevelPad = xform1 c_th2d_getcontourlevelpad
+  getBin = xform3 c_th2d_getbin
+  getBinCenter = xform1 c_th2d_getbincenter
+  getBinContent1 = xform1 c_th2d_getbincontent1
+  getBinContent2 = xform2 c_th2d_getbincontent2
+  getBinContent3 = xform3 c_th2d_getbincontent3
+  getBinError1 = xform1 c_th2d_getbinerror1
+  getBinError2 = xform2 c_th2d_getbinerror2
+  getBinError3 = xform3 c_th2d_getbinerror3
+  getBinLowEdge = xform1 c_th2d_getbinlowedge
+  getBinWidth = xform1 c_th2d_getbinwidth
+  getCellContent = xform2 c_th2d_getcellcontent
+  getCellError = xform2 c_th2d_getcellerror
+
+instance ITH1 TH2C where
+  add = xform2 c_th2c_add
+  addBinContent = xform2 c_th2c_addbincontent
+  chi2Test = xform3 c_th2c_chi2test
+  computeIntegral = xform0 c_th2c_computeintegral
+  directoryAutoAdd = xform1 c_th2c_directoryautoadd
+  distancetoPrimitive = xform2 c_th2c_distancetoprimitive
+  divide = xform5 c_th2c_divide
+  drawCopy = xform1 c_th2c_drawcopy
+  drawNormalized = xform2 c_th2c_drawnormalized
+  drawPanel = xform0 c_th2c_drawpanel
+  bufferEmpty = xform1 c_th2c_bufferempty
+  eval = xform2 c_th2c_eval
+  executeEvent = xform3 c_th2c_executeevent
+  fFT = xform2 c_th2c_fft
+  fill1 = xform1 c_th2c_fill1
+  fillN = xform4 c_th2c_filln
+  fillRandom = xform2 c_th2c_fillrandom
+  findBin = xform3 c_th2c_findbin
+  findFixBin = xform3 c_th2c_findfixbin
+  findFirstBinAbove = xform2 c_th2c_findfirstbinabove
+  findLastBinAbove = xform2 c_th2c_findlastbinabove
+  fitPanel = xform0 c_th2c_fitpanel
+  getNdivisions = xform1 c_th2c_getndivisions
+  getAxisColor = xform1 c_th2c_getaxiscolor
+  getLabelColor = xform1 c_th2c_getlabelcolor
+  getLabelFont = xform1 c_th2c_getlabelfont
+  getLabelOffset = xform1 c_th2c_getlabeloffset
+  getLabelSize = xform1 c_th2c_getlabelsize
+  getTitleFont = xform1 c_th2c_gettitlefont
+  getTitleOffset = xform1 c_th2c_gettitleoffset
+  getTitleSize = xform1 c_th2c_gettitlesize
+  getTickLength = xform1 c_th2c_getticklength
+  getBarOffset = xform0 c_th2c_getbaroffset
+  getBarWidth = xform0 c_th2c_getbarwidth
+  getContour = xform1 c_th2c_getcontour
+  getContourLevel = xform1 c_th2c_getcontourlevel
+  getContourLevelPad = xform1 c_th2c_getcontourlevelpad
+  getBin = xform3 c_th2c_getbin
+  getBinCenter = xform1 c_th2c_getbincenter
+  getBinContent1 = xform1 c_th2c_getbincontent1
+  getBinContent2 = xform2 c_th2c_getbincontent2
+  getBinContent3 = xform3 c_th2c_getbincontent3
+  getBinError1 = xform1 c_th2c_getbinerror1
+  getBinError2 = xform2 c_th2c_getbinerror2
+  getBinError3 = xform3 c_th2c_getbinerror3
+  getBinLowEdge = xform1 c_th2c_getbinlowedge
+  getBinWidth = xform1 c_th2c_getbinwidth
+  getCellContent = xform2 c_th2c_getcellcontent
+  getCellError = xform2 c_th2c_getcellerror
+
+instance ITH1 TH1S where
+  add = xform2 c_th1s_add
+  addBinContent = xform2 c_th1s_addbincontent
+  chi2Test = xform3 c_th1s_chi2test
+  computeIntegral = xform0 c_th1s_computeintegral
+  directoryAutoAdd = xform1 c_th1s_directoryautoadd
+  distancetoPrimitive = xform2 c_th1s_distancetoprimitive
+  divide = xform5 c_th1s_divide
+  drawCopy = xform1 c_th1s_drawcopy
+  drawNormalized = xform2 c_th1s_drawnormalized
+  drawPanel = xform0 c_th1s_drawpanel
+  bufferEmpty = xform1 c_th1s_bufferempty
+  eval = xform2 c_th1s_eval
+  executeEvent = xform3 c_th1s_executeevent
+  fFT = xform2 c_th1s_fft
+  fill1 = xform1 c_th1s_fill1
+  fillN = xform4 c_th1s_filln
+  fillRandom = xform2 c_th1s_fillrandom
+  findBin = xform3 c_th1s_findbin
+  findFixBin = xform3 c_th1s_findfixbin
+  findFirstBinAbove = xform2 c_th1s_findfirstbinabove
+  findLastBinAbove = xform2 c_th1s_findlastbinabove
+  fitPanel = xform0 c_th1s_fitpanel
+  getNdivisions = xform1 c_th1s_getndivisions
+  getAxisColor = xform1 c_th1s_getaxiscolor
+  getLabelColor = xform1 c_th1s_getlabelcolor
+  getLabelFont = xform1 c_th1s_getlabelfont
+  getLabelOffset = xform1 c_th1s_getlabeloffset
+  getLabelSize = xform1 c_th1s_getlabelsize
+  getTitleFont = xform1 c_th1s_gettitlefont
+  getTitleOffset = xform1 c_th1s_gettitleoffset
+  getTitleSize = xform1 c_th1s_gettitlesize
+  getTickLength = xform1 c_th1s_getticklength
+  getBarOffset = xform0 c_th1s_getbaroffset
+  getBarWidth = xform0 c_th1s_getbarwidth
+  getContour = xform1 c_th1s_getcontour
+  getContourLevel = xform1 c_th1s_getcontourlevel
+  getContourLevelPad = xform1 c_th1s_getcontourlevelpad
+  getBin = xform3 c_th1s_getbin
+  getBinCenter = xform1 c_th1s_getbincenter
+  getBinContent1 = xform1 c_th1s_getbincontent1
+  getBinContent2 = xform2 c_th1s_getbincontent2
+  getBinContent3 = xform3 c_th1s_getbincontent3
+  getBinError1 = xform1 c_th1s_getbinerror1
+  getBinError2 = xform2 c_th1s_getbinerror2
+  getBinError3 = xform3 c_th1s_getbinerror3
+  getBinLowEdge = xform1 c_th1s_getbinlowedge
+  getBinWidth = xform1 c_th1s_getbinwidth
+  getCellContent = xform2 c_th1s_getcellcontent
+  getCellError = xform2 c_th1s_getcellerror
+
+instance ITH1 TH1I where
+  add = xform2 c_th1i_add
+  addBinContent = xform2 c_th1i_addbincontent
+  chi2Test = xform3 c_th1i_chi2test
+  computeIntegral = xform0 c_th1i_computeintegral
+  directoryAutoAdd = xform1 c_th1i_directoryautoadd
+  distancetoPrimitive = xform2 c_th1i_distancetoprimitive
+  divide = xform5 c_th1i_divide
+  drawCopy = xform1 c_th1i_drawcopy
+  drawNormalized = xform2 c_th1i_drawnormalized
+  drawPanel = xform0 c_th1i_drawpanel
+  bufferEmpty = xform1 c_th1i_bufferempty
+  eval = xform2 c_th1i_eval
+  executeEvent = xform3 c_th1i_executeevent
+  fFT = xform2 c_th1i_fft
+  fill1 = xform1 c_th1i_fill1
+  fillN = xform4 c_th1i_filln
+  fillRandom = xform2 c_th1i_fillrandom
+  findBin = xform3 c_th1i_findbin
+  findFixBin = xform3 c_th1i_findfixbin
+  findFirstBinAbove = xform2 c_th1i_findfirstbinabove
+  findLastBinAbove = xform2 c_th1i_findlastbinabove
+  fitPanel = xform0 c_th1i_fitpanel
+  getNdivisions = xform1 c_th1i_getndivisions
+  getAxisColor = xform1 c_th1i_getaxiscolor
+  getLabelColor = xform1 c_th1i_getlabelcolor
+  getLabelFont = xform1 c_th1i_getlabelfont
+  getLabelOffset = xform1 c_th1i_getlabeloffset
+  getLabelSize = xform1 c_th1i_getlabelsize
+  getTitleFont = xform1 c_th1i_gettitlefont
+  getTitleOffset = xform1 c_th1i_gettitleoffset
+  getTitleSize = xform1 c_th1i_gettitlesize
+  getTickLength = xform1 c_th1i_getticklength
+  getBarOffset = xform0 c_th1i_getbaroffset
+  getBarWidth = xform0 c_th1i_getbarwidth
+  getContour = xform1 c_th1i_getcontour
+  getContourLevel = xform1 c_th1i_getcontourlevel
+  getContourLevelPad = xform1 c_th1i_getcontourlevelpad
+  getBin = xform3 c_th1i_getbin
+  getBinCenter = xform1 c_th1i_getbincenter
+  getBinContent1 = xform1 c_th1i_getbincontent1
+  getBinContent2 = xform2 c_th1i_getbincontent2
+  getBinContent3 = xform3 c_th1i_getbincontent3
+  getBinError1 = xform1 c_th1i_getbinerror1
+  getBinError2 = xform2 c_th1i_getbinerror2
+  getBinError3 = xform3 c_th1i_getbinerror3
+  getBinLowEdge = xform1 c_th1i_getbinlowedge
+  getBinWidth = xform1 c_th1i_getbinwidth
+  getCellContent = xform2 c_th1i_getcellcontent
+  getCellError = xform2 c_th1i_getcellerror
+
+instance ITH1 TH1F where
+  add = xform2 c_th1f_add
+  addBinContent = xform2 c_th1f_addbincontent
+  chi2Test = xform3 c_th1f_chi2test
+  computeIntegral = xform0 c_th1f_computeintegral
+  directoryAutoAdd = xform1 c_th1f_directoryautoadd
+  distancetoPrimitive = xform2 c_th1f_distancetoprimitive
+  divide = xform5 c_th1f_divide
+  drawCopy = xform1 c_th1f_drawcopy
+  drawNormalized = xform2 c_th1f_drawnormalized
+  drawPanel = xform0 c_th1f_drawpanel
+  bufferEmpty = xform1 c_th1f_bufferempty
+  eval = xform2 c_th1f_eval
+  executeEvent = xform3 c_th1f_executeevent
+  fFT = xform2 c_th1f_fft
+  fill1 = xform1 c_th1f_fill1
+  fillN = xform4 c_th1f_filln
+  fillRandom = xform2 c_th1f_fillrandom
+  findBin = xform3 c_th1f_findbin
+  findFixBin = xform3 c_th1f_findfixbin
+  findFirstBinAbove = xform2 c_th1f_findfirstbinabove
+  findLastBinAbove = xform2 c_th1f_findlastbinabove
+  fitPanel = xform0 c_th1f_fitpanel
+  getNdivisions = xform1 c_th1f_getndivisions
+  getAxisColor = xform1 c_th1f_getaxiscolor
+  getLabelColor = xform1 c_th1f_getlabelcolor
+  getLabelFont = xform1 c_th1f_getlabelfont
+  getLabelOffset = xform1 c_th1f_getlabeloffset
+  getLabelSize = xform1 c_th1f_getlabelsize
+  getTitleFont = xform1 c_th1f_gettitlefont
+  getTitleOffset = xform1 c_th1f_gettitleoffset
+  getTitleSize = xform1 c_th1f_gettitlesize
+  getTickLength = xform1 c_th1f_getticklength
+  getBarOffset = xform0 c_th1f_getbaroffset
+  getBarWidth = xform0 c_th1f_getbarwidth
+  getContour = xform1 c_th1f_getcontour
+  getContourLevel = xform1 c_th1f_getcontourlevel
+  getContourLevelPad = xform1 c_th1f_getcontourlevelpad
+  getBin = xform3 c_th1f_getbin
+  getBinCenter = xform1 c_th1f_getbincenter
+  getBinContent1 = xform1 c_th1f_getbincontent1
+  getBinContent2 = xform2 c_th1f_getbincontent2
+  getBinContent3 = xform3 c_th1f_getbincontent3
+  getBinError1 = xform1 c_th1f_getbinerror1
+  getBinError2 = xform2 c_th1f_getbinerror2
+  getBinError3 = xform3 c_th1f_getbinerror3
+  getBinLowEdge = xform1 c_th1f_getbinlowedge
+  getBinWidth = xform1 c_th1f_getbinwidth
+  getCellContent = xform2 c_th1f_getcellcontent
+  getCellError = xform2 c_th1f_getcellerror
+
+instance ITH1 TH1D where
+  add = xform2 c_th1d_add
+  addBinContent = xform2 c_th1d_addbincontent
+  chi2Test = xform3 c_th1d_chi2test
+  computeIntegral = xform0 c_th1d_computeintegral
+  directoryAutoAdd = xform1 c_th1d_directoryautoadd
+  distancetoPrimitive = xform2 c_th1d_distancetoprimitive
+  divide = xform5 c_th1d_divide
+  drawCopy = xform1 c_th1d_drawcopy
+  drawNormalized = xform2 c_th1d_drawnormalized
+  drawPanel = xform0 c_th1d_drawpanel
+  bufferEmpty = xform1 c_th1d_bufferempty
+  eval = xform2 c_th1d_eval
+  executeEvent = xform3 c_th1d_executeevent
+  fFT = xform2 c_th1d_fft
+  fill1 = xform1 c_th1d_fill1
+  fillN = xform4 c_th1d_filln
+  fillRandom = xform2 c_th1d_fillrandom
+  findBin = xform3 c_th1d_findbin
+  findFixBin = xform3 c_th1d_findfixbin
+  findFirstBinAbove = xform2 c_th1d_findfirstbinabove
+  findLastBinAbove = xform2 c_th1d_findlastbinabove
+  fitPanel = xform0 c_th1d_fitpanel
+  getNdivisions = xform1 c_th1d_getndivisions
+  getAxisColor = xform1 c_th1d_getaxiscolor
+  getLabelColor = xform1 c_th1d_getlabelcolor
+  getLabelFont = xform1 c_th1d_getlabelfont
+  getLabelOffset = xform1 c_th1d_getlabeloffset
+  getLabelSize = xform1 c_th1d_getlabelsize
+  getTitleFont = xform1 c_th1d_gettitlefont
+  getTitleOffset = xform1 c_th1d_gettitleoffset
+  getTitleSize = xform1 c_th1d_gettitlesize
+  getTickLength = xform1 c_th1d_getticklength
+  getBarOffset = xform0 c_th1d_getbaroffset
+  getBarWidth = xform0 c_th1d_getbarwidth
+  getContour = xform1 c_th1d_getcontour
+  getContourLevel = xform1 c_th1d_getcontourlevel
+  getContourLevelPad = xform1 c_th1d_getcontourlevelpad
+  getBin = xform3 c_th1d_getbin
+  getBinCenter = xform1 c_th1d_getbincenter
+  getBinContent1 = xform1 c_th1d_getbincontent1
+  getBinContent2 = xform2 c_th1d_getbincontent2
+  getBinContent3 = xform3 c_th1d_getbincontent3
+  getBinError1 = xform1 c_th1d_getbinerror1
+  getBinError2 = xform2 c_th1d_getbinerror2
+  getBinError3 = xform3 c_th1d_getbinerror3
+  getBinLowEdge = xform1 c_th1d_getbinlowedge
+  getBinWidth = xform1 c_th1d_getbinwidth
+  getCellContent = xform2 c_th1d_getcellcontent
+  getCellError = xform2 c_th1d_getcellerror
+
+instance ITH1 TH1C where
+  add = xform2 c_th1c_add
+  addBinContent = xform2 c_th1c_addbincontent
+  chi2Test = xform3 c_th1c_chi2test
+  computeIntegral = xform0 c_th1c_computeintegral
+  directoryAutoAdd = xform1 c_th1c_directoryautoadd
+  distancetoPrimitive = xform2 c_th1c_distancetoprimitive
+  divide = xform5 c_th1c_divide
+  drawCopy = xform1 c_th1c_drawcopy
+  drawNormalized = xform2 c_th1c_drawnormalized
+  drawPanel = xform0 c_th1c_drawpanel
+  bufferEmpty = xform1 c_th1c_bufferempty
+  eval = xform2 c_th1c_eval
+  executeEvent = xform3 c_th1c_executeevent
+  fFT = xform2 c_th1c_fft
+  fill1 = xform1 c_th1c_fill1
+  fillN = xform4 c_th1c_filln
+  fillRandom = xform2 c_th1c_fillrandom
+  findBin = xform3 c_th1c_findbin
+  findFixBin = xform3 c_th1c_findfixbin
+  findFirstBinAbove = xform2 c_th1c_findfirstbinabove
+  findLastBinAbove = xform2 c_th1c_findlastbinabove
+  fitPanel = xform0 c_th1c_fitpanel
+  getNdivisions = xform1 c_th1c_getndivisions
+  getAxisColor = xform1 c_th1c_getaxiscolor
+  getLabelColor = xform1 c_th1c_getlabelcolor
+  getLabelFont = xform1 c_th1c_getlabelfont
+  getLabelOffset = xform1 c_th1c_getlabeloffset
+  getLabelSize = xform1 c_th1c_getlabelsize
+  getTitleFont = xform1 c_th1c_gettitlefont
+  getTitleOffset = xform1 c_th1c_gettitleoffset
+  getTitleSize = xform1 c_th1c_gettitlesize
+  getTickLength = xform1 c_th1c_getticklength
+  getBarOffset = xform0 c_th1c_getbaroffset
+  getBarWidth = xform0 c_th1c_getbarwidth
+  getContour = xform1 c_th1c_getcontour
+  getContourLevel = xform1 c_th1c_getcontourlevel
+  getContourLevelPad = xform1 c_th1c_getcontourlevelpad
+  getBin = xform3 c_th1c_getbin
+  getBinCenter = xform1 c_th1c_getbincenter
+  getBinContent1 = xform1 c_th1c_getbincontent1
+  getBinContent2 = xform2 c_th1c_getbincontent2
+  getBinContent3 = xform3 c_th1c_getbincontent3
+  getBinError1 = xform1 c_th1c_getbinerror1
+  getBinError2 = xform2 c_th1c_getbinerror2
+  getBinError3 = xform3 c_th1c_getbinerror3
+  getBinLowEdge = xform1 c_th1c_getbinlowedge
+  getBinWidth = xform1 c_th1c_getbinwidth
+  getCellContent = xform2 c_th1c_getcellcontent
+  getCellError = xform2 c_th1c_getcellerror
+
+instance ITH1 TH3 where
+  add = xform2 c_th3_add
+  addBinContent = xform2 c_th3_addbincontent
+  chi2Test = xform3 c_th3_chi2test
+  computeIntegral = xform0 c_th3_computeintegral
+  directoryAutoAdd = xform1 c_th3_directoryautoadd
+  distancetoPrimitive = xform2 c_th3_distancetoprimitive
+  divide = xform5 c_th3_divide
+  drawCopy = xform1 c_th3_drawcopy
+  drawNormalized = xform2 c_th3_drawnormalized
+  drawPanel = xform0 c_th3_drawpanel
+  bufferEmpty = xform1 c_th3_bufferempty
+  eval = xform2 c_th3_eval
+  executeEvent = xform3 c_th3_executeevent
+  fFT = xform2 c_th3_fft
+  fill1 = xform1 c_th3_fill1
+  fillN = xform4 c_th3_filln
+  fillRandom = xform2 c_th3_fillrandom
+  findBin = xform3 c_th3_findbin
+  findFixBin = xform3 c_th3_findfixbin
+  findFirstBinAbove = xform2 c_th3_findfirstbinabove
+  findLastBinAbove = xform2 c_th3_findlastbinabove
+  fitPanel = xform0 c_th3_fitpanel
+  getNdivisions = xform1 c_th3_getndivisions
+  getAxisColor = xform1 c_th3_getaxiscolor
+  getLabelColor = xform1 c_th3_getlabelcolor
+  getLabelFont = xform1 c_th3_getlabelfont
+  getLabelOffset = xform1 c_th3_getlabeloffset
+  getLabelSize = xform1 c_th3_getlabelsize
+  getTitleFont = xform1 c_th3_gettitlefont
+  getTitleOffset = xform1 c_th3_gettitleoffset
+  getTitleSize = xform1 c_th3_gettitlesize
+  getTickLength = xform1 c_th3_getticklength
+  getBarOffset = xform0 c_th3_getbaroffset
+  getBarWidth = xform0 c_th3_getbarwidth
+  getContour = xform1 c_th3_getcontour
+  getContourLevel = xform1 c_th3_getcontourlevel
+  getContourLevelPad = xform1 c_th3_getcontourlevelpad
+  getBin = xform3 c_th3_getbin
+  getBinCenter = xform1 c_th3_getbincenter
+  getBinContent1 = xform1 c_th3_getbincontent1
+  getBinContent2 = xform2 c_th3_getbincontent2
+  getBinContent3 = xform3 c_th3_getbincontent3
+  getBinError1 = xform1 c_th3_getbinerror1
+  getBinError2 = xform2 c_th3_getbinerror2
+  getBinError3 = xform3 c_th3_getbinerror3
+  getBinLowEdge = xform1 c_th3_getbinlowedge
+  getBinWidth = xform1 c_th3_getbinwidth
+  getCellContent = xform2 c_th3_getcellcontent
+  getCellError = xform2 c_th3_getcellerror
+
+instance ITH1 TH2 where
+  add = xform2 c_th2_add
+  addBinContent = xform2 c_th2_addbincontent
+  chi2Test = xform3 c_th2_chi2test
+  computeIntegral = xform0 c_th2_computeintegral
+  directoryAutoAdd = xform1 c_th2_directoryautoadd
+  distancetoPrimitive = xform2 c_th2_distancetoprimitive
+  divide = xform5 c_th2_divide
+  drawCopy = xform1 c_th2_drawcopy
+  drawNormalized = xform2 c_th2_drawnormalized
+  drawPanel = xform0 c_th2_drawpanel
+  bufferEmpty = xform1 c_th2_bufferempty
+  eval = xform2 c_th2_eval
+  executeEvent = xform3 c_th2_executeevent
+  fFT = xform2 c_th2_fft
+  fill1 = xform1 c_th2_fill1
+  fillN = xform4 c_th2_filln
+  fillRandom = xform2 c_th2_fillrandom
+  findBin = xform3 c_th2_findbin
+  findFixBin = xform3 c_th2_findfixbin
+  findFirstBinAbove = xform2 c_th2_findfirstbinabove
+  findLastBinAbove = xform2 c_th2_findlastbinabove
+  fitPanel = xform0 c_th2_fitpanel
+  getNdivisions = xform1 c_th2_getndivisions
+  getAxisColor = xform1 c_th2_getaxiscolor
+  getLabelColor = xform1 c_th2_getlabelcolor
+  getLabelFont = xform1 c_th2_getlabelfont
+  getLabelOffset = xform1 c_th2_getlabeloffset
+  getLabelSize = xform1 c_th2_getlabelsize
+  getTitleFont = xform1 c_th2_gettitlefont
+  getTitleOffset = xform1 c_th2_gettitleoffset
+  getTitleSize = xform1 c_th2_gettitlesize
+  getTickLength = xform1 c_th2_getticklength
+  getBarOffset = xform0 c_th2_getbaroffset
+  getBarWidth = xform0 c_th2_getbarwidth
+  getContour = xform1 c_th2_getcontour
+  getContourLevel = xform1 c_th2_getcontourlevel
+  getContourLevelPad = xform1 c_th2_getcontourlevelpad
+  getBin = xform3 c_th2_getbin
+  getBinCenter = xform1 c_th2_getbincenter
+  getBinContent1 = xform1 c_th2_getbincontent1
+  getBinContent2 = xform2 c_th2_getbincontent2
+  getBinContent3 = xform3 c_th2_getbincontent3
+  getBinError1 = xform1 c_th2_getbinerror1
+  getBinError2 = xform2 c_th2_getbinerror2
+  getBinError3 = xform3 c_th2_getbinerror3
+  getBinLowEdge = xform1 c_th2_getbinlowedge
+  getBinWidth = xform1 c_th2_getbinwidth
+  getCellContent = xform2 c_th2_getcellcontent
+  getCellError = xform2 c_th2_getcellerror
+
+instance ITH2 TH2S where
+  fill2 = xform2 c_th2s_fill2
+
+instance ITH2 TH2Poly where
+  fill2 = xform2 c_th2poly_fill2
+
+instance ITH2 TH2I where
+  fill2 = xform2 c_th2i_fill2
+
+instance ITH2 TH2F where
+  fill2 = xform2 c_th2f_fill2
+
+instance ITH2 TH2D where
+  fill2 = xform2 c_th2d_fill2
+
+instance ITH2 TH2C where
+  fill2 = xform2 c_th2c_fill2
+
+instance ITH3 TH3S where
+
+instance ITH3 TH3I where
+
+instance ITH3 TH3F where
+
+instance ITH3 TH3D where
+
+instance ITH3 TH3C where
+
+instance ITLine TGaxis where
+
+instance ITLine TArrow where
+
+instance ITNamed TRandom where
+  setTitle = xform1 c_trandom_settitle
+
+instance ITNamed TH3S where
+  setTitle = xform1 c_th3s_settitle
+
+instance ITNamed TH3I where
+  setTitle = xform1 c_th3i_settitle
+
+instance ITNamed TH3F where
+  setTitle = xform1 c_th3f_settitle
+
+instance ITNamed TH3D where
+  setTitle = xform1 c_th3d_settitle
+
+instance ITNamed TH3C where
+  setTitle = xform1 c_th3c_settitle
+
+instance ITNamed TH2S where
+  setTitle = xform1 c_th2s_settitle
+
+instance ITNamed TH2Poly where
+  setTitle = xform1 c_th2poly_settitle
+
+instance ITNamed TH2I where
+  setTitle = xform1 c_th2i_settitle
+
+instance ITNamed TH2F where
+  setTitle = xform1 c_th2f_settitle
+
+instance ITNamed TH2D where
+  setTitle = xform1 c_th2d_settitle
+
+instance ITNamed TH2C where
+  setTitle = xform1 c_th2c_settitle
+
+instance ITNamed TH1S where
+  setTitle = xform1 c_th1s_settitle
+
+instance ITNamed TH1I where
+  setTitle = xform1 c_th1i_settitle
+
+instance ITNamed TH1F where
+  setTitle = xform1 c_th1f_settitle
+
+instance ITNamed TH1D where
+  setTitle = xform1 c_th1d_settitle
+
+instance ITNamed TH1C where
+  setTitle = xform1 c_th1c_settitle
+
+instance ITNamed TH3 where
+  setTitle = xform1 c_th3_settitle
+
+instance ITNamed TH2 where
+  setTitle = xform1 c_th2_settitle
+
+instance ITNamed TH1 where
+  setTitle = xform1 c_th1_settitle
+
+instance ITNamed TBranch where
+  setTitle = xform1 c_tbranch_settitle
+
+instance ITNamed TFile where
+  setTitle = xform1 c_tfile_settitle
+
+instance ITNamed TDirectoryFile where
+  setTitle = xform1 c_tdirectoryfile_settitle
+
+instance ITNamed TDirectory where
+  setTitle = xform1 c_tdirectory_settitle
+
+instance ITNamed TText where
+  setTitle = xform1 c_ttext_settitle
+
+instance ITNamed TLatex where
+  setTitle = xform1 c_tlatex_settitle
+
+instance ITNamed TAxis where
+  setTitle = xform1 c_taxis_settitle
+
+instance ITNamed TEfficiency where
+  setTitle = xform1 c_tefficiency_settitle
+
+instance ITNamed TTreeSQL where
+  setTitle = xform1 c_ttreesql_settitle
+
+instance ITNamed TNtupleD where
+  setTitle = xform1 c_tntupled_settitle
+
+instance ITNamed TNtuple where
+  setTitle = xform1 c_tntuple_settitle
+
+instance ITNamed TChain where
+  setTitle = xform1 c_tchain_settitle
+
+instance ITNamed TTree where
+  setTitle = xform1 c_ttree_settitle
+
+instance ITNamed TXTRU where
+  setTitle = xform1 c_txtru_settitle
+
+instance ITNamed TSPHE where
+  setTitle = xform1 c_tsphe_settitle
+
+instance ITNamed TPCON where
+  setTitle = xform1 c_tpcon_settitle
+
+instance ITNamed TTUBE where
+  setTitle = xform1 c_ttube_settitle
+
+instance ITNamed TBRIK where
+  setTitle = xform1 c_tbrik_settitle
+
+instance ITNamed TShape where
+  setTitle = xform1 c_tshape_settitle
+
+instance ITNamed TGraphQQ where
+  setTitle = xform1 c_tgraphqq_settitle
+
+instance ITNamed TGraphPolar where
+  setTitle = xform1 c_tgraphpolar_settitle
+
+instance ITNamed TGraphErrors where
+  setTitle = xform1 c_tgrapherrors_settitle
+
+instance ITNamed TGraphBentErrors where
+  setTitle = xform1 c_tgraphbenterrors_settitle
+
+instance ITNamed TCutG where
+  setTitle = xform1 c_tcutg_settitle
+
+instance ITNamed TGraphAsymmErrors where
+  setTitle = xform1 c_tgraphasymmerrors_settitle
+
+instance ITNamed TGraph where
+  setTitle = xform1 c_tgraph_settitle
+
+instance ITNamed TF1 where
+  setTitle = xform1 c_tf1_settitle
+
+instance ITNamed THStack where
+  setTitle = xform1 c_thstack_settitle
+
+instance ITNamed TAttParticle where
+  setTitle = xform1 c_tattparticle_settitle
+
+instance ITNamed TFormula where
+  setTitle = xform1 c_tformula_settitle
+
+instance ITObject TRandom where
+  getName = xform0 c_trandom_getname
+  draw = xform1 c_trandom_draw
+  findObject = xform1 c_trandom_findobject
+  saveAs = xform2 c_trandom_saveas
+  write = xform3 c_trandom_write
+
+instance ITObject TRint where
+  getName = xform0 c_trint_getname
+  draw = xform1 c_trint_draw
+  findObject = xform1 c_trint_findobject
+  saveAs = xform2 c_trint_saveas
+  write = xform3 c_trint_write
+
+instance ITObject TApplication where
+  getName = xform0 c_tapplication_getname
+  draw = xform1 c_tapplication_draw
+  findObject = xform1 c_tapplication_findobject
+  saveAs = xform2 c_tapplication_saveas
+  write = xform3 c_tapplication_write
+
+instance ITObject TSlider where
+  getName = xform0 c_tslider_getname
+  draw = xform1 c_tslider_draw
+  findObject = xform1 c_tslider_findobject
+  saveAs = xform2 c_tslider_saveas
+  write = xform3 c_tslider_write
+
+instance ITObject TEvePad where
+  getName = xform0 c_tevepad_getname
+  draw = xform1 c_tevepad_draw
+  findObject = xform1 c_tevepad_findobject
+  saveAs = xform2 c_tevepad_saveas
+  write = xform3 c_tevepad_write
+
+instance ITObject TInspectCanvas where
+  getName = xform0 c_tinspectcanvas_getname
+  draw = xform1 c_tinspectcanvas_draw
+  findObject = xform1 c_tinspectcanvas_findobject
+  saveAs = xform2 c_tinspectcanvas_saveas
+  write = xform3 c_tinspectcanvas_write
+
+instance ITObject TDialogCanvas where
+  getName = xform0 c_tdialogcanvas_getname
+  draw = xform1 c_tdialogcanvas_draw
+  findObject = xform1 c_tdialogcanvas_findobject
+  saveAs = xform2 c_tdialogcanvas_saveas
+  write = xform3 c_tdialogcanvas_write
+
+instance ITObject TCanvas where
+  getName = xform0 c_tcanvas_getname
+  draw = xform1 c_tcanvas_draw
+  findObject = xform1 c_tcanvas_findobject
+  saveAs = xform2 c_tcanvas_saveas
+  write = xform3 c_tcanvas_write
+
+instance ITObject TGroupButton where
+  getName = xform0 c_tgroupbutton_getname
+  draw = xform1 c_tgroupbutton_draw
+  findObject = xform1 c_tgroupbutton_findobject
+  saveAs = xform2 c_tgroupbutton_saveas
+  write = xform3 c_tgroupbutton_write
+
+instance ITObject TButton where
+  getName = xform0 c_tbutton_getname
+  draw = xform1 c_tbutton_draw
+  findObject = xform1 c_tbutton_findobject
+  saveAs = xform2 c_tbutton_saveas
+  write = xform3 c_tbutton_write
+
+instance ITObject TPad where
+  getName = xform0 c_tpad_getname
+  draw = xform1 c_tpad_draw
+  findObject = xform1 c_tpad_findobject
+  saveAs = xform2 c_tpad_saveas
+  write = xform3 c_tpad_write
+
+instance ITObject TVirtualPad where
+  getName = xform0 c_tvirtualpad_getname
+  draw = xform1 c_tvirtualpad_draw
+  findObject = xform1 c_tvirtualpad_findobject
+  saveAs = xform2 c_tvirtualpad_saveas
+  write = xform3 c_tvirtualpad_write
+
+instance ITObject TH3S where
+  getName = xform0 c_th3s_getname
+  draw = xform1 c_th3s_draw
+  findObject = xform1 c_th3s_findobject
+  saveAs = xform2 c_th3s_saveas
+  write = xform3 c_th3s_write
+
+instance ITObject TH3I where
+  getName = xform0 c_th3i_getname
+  draw = xform1 c_th3i_draw
+  findObject = xform1 c_th3i_findobject
+  saveAs = xform2 c_th3i_saveas
+  write = xform3 c_th3i_write
+
+instance ITObject TH3F where
+  getName = xform0 c_th3f_getname
+  draw = xform1 c_th3f_draw
+  findObject = xform1 c_th3f_findobject
+  saveAs = xform2 c_th3f_saveas
+  write = xform3 c_th3f_write
+
+instance ITObject TH3D where
+  getName = xform0 c_th3d_getname
+  draw = xform1 c_th3d_draw
+  findObject = xform1 c_th3d_findobject
+  saveAs = xform2 c_th3d_saveas
+  write = xform3 c_th3d_write
+
+instance ITObject TH3C where
+  getName = xform0 c_th3c_getname
+  draw = xform1 c_th3c_draw
+  findObject = xform1 c_th3c_findobject
+  saveAs = xform2 c_th3c_saveas
+  write = xform3 c_th3c_write
+
+instance ITObject TH2S where
+  getName = xform0 c_th2s_getname
+  draw = xform1 c_th2s_draw
+  findObject = xform1 c_th2s_findobject
+  saveAs = xform2 c_th2s_saveas
+  write = xform3 c_th2s_write
+
+instance ITObject TH2Poly where
+  getName = xform0 c_th2poly_getname
+  draw = xform1 c_th2poly_draw
+  findObject = xform1 c_th2poly_findobject
+  saveAs = xform2 c_th2poly_saveas
+  write = xform3 c_th2poly_write
+
+instance ITObject TH2I where
+  getName = xform0 c_th2i_getname
+  draw = xform1 c_th2i_draw
+  findObject = xform1 c_th2i_findobject
+  saveAs = xform2 c_th2i_saveas
+  write = xform3 c_th2i_write
+
+instance ITObject TH2F where
+  getName = xform0 c_th2f_getname
+  draw = xform1 c_th2f_draw
+  findObject = xform1 c_th2f_findobject
+  saveAs = xform2 c_th2f_saveas
+  write = xform3 c_th2f_write
+
+instance ITObject TH2D where
+  getName = xform0 c_th2d_getname
+  draw = xform1 c_th2d_draw
+  findObject = xform1 c_th2d_findobject
+  saveAs = xform2 c_th2d_saveas
+  write = xform3 c_th2d_write
+
+instance ITObject TH2C where
+  getName = xform0 c_th2c_getname
+  draw = xform1 c_th2c_draw
+  findObject = xform1 c_th2c_findobject
+  saveAs = xform2 c_th2c_saveas
+  write = xform3 c_th2c_write
+
+instance ITObject TH1S where
+  getName = xform0 c_th1s_getname
+  draw = xform1 c_th1s_draw
+  findObject = xform1 c_th1s_findobject
+  saveAs = xform2 c_th1s_saveas
+  write = xform3 c_th1s_write
+
+instance ITObject TH1I where
+  getName = xform0 c_th1i_getname
+  draw = xform1 c_th1i_draw
+  findObject = xform1 c_th1i_findobject
+  saveAs = xform2 c_th1i_saveas
+  write = xform3 c_th1i_write
+
+instance ITObject TH1F where
+  getName = xform0 c_th1f_getname
+  draw = xform1 c_th1f_draw
+  findObject = xform1 c_th1f_findobject
+  saveAs = xform2 c_th1f_saveas
+  write = xform3 c_th1f_write
+
+instance ITObject TH1D where
+  getName = xform0 c_th1d_getname
+  draw = xform1 c_th1d_draw
+  findObject = xform1 c_th1d_findobject
+  saveAs = xform2 c_th1d_saveas
+  write = xform3 c_th1d_write
+
+instance ITObject TH1C where
+  getName = xform0 c_th1c_getname
+  draw = xform1 c_th1c_draw
+  findObject = xform1 c_th1c_findobject
+  saveAs = xform2 c_th1c_saveas
+  write = xform3 c_th1c_write
+
+instance ITObject TH3 where
+  getName = xform0 c_th3_getname
+  draw = xform1 c_th3_draw
+  findObject = xform1 c_th3_findobject
+  saveAs = xform2 c_th3_saveas
+  write = xform3 c_th3_write
+
+instance ITObject TH2 where
+  getName = xform0 c_th2_getname
+  draw = xform1 c_th2_draw
+  findObject = xform1 c_th2_findobject
+  saveAs = xform2 c_th2_saveas
+  write = xform3 c_th2_write
+
+instance ITObject TH1 where
+  getName = xform0 c_th1_getname
+  draw = xform1 c_th1_draw
+  findObject = xform1 c_th1_findobject
+  saveAs = xform2 c_th1_saveas
+  write = xform3 c_th1_write
+
+instance ITObject TTreePlayer where
+  getName = xform0 c_ttreeplayer_getname
+  draw = xform1 c_ttreeplayer_draw
+  findObject = xform1 c_ttreeplayer_findobject
+  saveAs = xform2 c_ttreeplayer_saveas
+  write = xform3 c_ttreeplayer_write
+
+instance ITObject TVirtualTreePlayer where
+  getName = xform0 c_tvirtualtreeplayer_getname
+  draw = xform1 c_tvirtualtreeplayer_draw
+  findObject = xform1 c_tvirtualtreeplayer_findobject
+  saveAs = xform2 c_tvirtualtreeplayer_saveas
+  write = xform3 c_tvirtualtreeplayer_write
+
+instance ITObject TBranch where
+  getName = xform0 c_tbranch_getname
+  draw = xform1 c_tbranch_draw
+  findObject = xform1 c_tbranch_findobject
+  saveAs = xform2 c_tbranch_saveas
+  write = xform3 c_tbranch_write
+
+instance ITObject TFile where
+  getName = xform0 c_tfile_getname
+  draw = xform1 c_tfile_draw
+  findObject = xform1 c_tfile_findobject
+  saveAs = xform2 c_tfile_saveas
+  write = xform3 c_tfile_write
+
+instance ITObject TDirectoryFile where
+  getName = xform0 c_tdirectoryfile_getname
+  draw = xform1 c_tdirectoryfile_draw
+  findObject = xform1 c_tdirectoryfile_findobject
+  saveAs = xform2 c_tdirectoryfile_saveas
+  write = xform3 c_tdirectoryfile_write
+
+instance ITObject TDirectory where
+  getName = xform0 c_tdirectory_getname
+  draw = xform1 c_tdirectory_draw
+  findObject = xform1 c_tdirectory_findobject
+  saveAs = xform2 c_tdirectory_saveas
+  write = xform3 c_tdirectory_write
+
+instance ITObject TText where
+  getName = xform0 c_ttext_getname
+  draw = xform1 c_ttext_draw
+  findObject = xform1 c_ttext_findobject
+  saveAs = xform2 c_ttext_saveas
+  write = xform3 c_ttext_write
+
+instance ITObject TLatex where
+  getName = xform0 c_tlatex_getname
+  draw = xform1 c_tlatex_draw
+  findObject = xform1 c_tlatex_findobject
+  saveAs = xform2 c_tlatex_saveas
+  write = xform3 c_tlatex_write
+
+instance ITObject TAxis where
+  getName = xform0 c_taxis_getname
+  draw = xform1 c_taxis_draw
+  findObject = xform1 c_taxis_findobject
+  saveAs = xform2 c_taxis_saveas
+  write = xform3 c_taxis_write
+
+instance ITObject TEfficiency where
+  getName = xform0 c_tefficiency_getname
+  draw = xform1 c_tefficiency_draw
+  findObject = xform1 c_tefficiency_findobject
+  saveAs = xform2 c_tefficiency_saveas
+  write = xform3 c_tefficiency_write
+
+instance ITObject TCurlyArc where
+  getName = xform0 c_tcurlyarc_getname
+  draw = xform1 c_tcurlyarc_draw
+  findObject = xform1 c_tcurlyarc_findobject
+  saveAs = xform2 c_tcurlyarc_saveas
+  write = xform3 c_tcurlyarc_write
+
+instance ITObject TCurlyLine where
+  getName = xform0 c_tcurlyline_getname
+  draw = xform1 c_tcurlyline_draw
+  findObject = xform1 c_tcurlyline_findobject
+  saveAs = xform2 c_tcurlyline_saveas
+  write = xform3 c_tcurlyline_write
+
+instance ITObject TPolyLine where
+  getName = xform0 c_tpolyline_getname
+  draw = xform1 c_tpolyline_draw
+  findObject = xform1 c_tpolyline_findobject
+  saveAs = xform2 c_tpolyline_saveas
+  write = xform3 c_tpolyline_write
+
+instance ITObject TTreeSQL where
+  getName = xform0 c_ttreesql_getname
+  draw = xform1 c_ttreesql_draw
+  findObject = xform1 c_ttreesql_findobject
+  saveAs = xform2 c_ttreesql_saveas
+  write = xform3 c_ttreesql_write
+
+instance ITObject TNtupleD where
+  getName = xform0 c_tntupled_getname
+  draw = xform1 c_tntupled_draw
+  findObject = xform1 c_tntupled_findobject
+  saveAs = xform2 c_tntupled_saveas
+  write = xform3 c_tntupled_write
+
+instance ITObject TNtuple where
+  getName = xform0 c_tntuple_getname
+  draw = xform1 c_tntuple_draw
+  findObject = xform1 c_tntuple_findobject
+  saveAs = xform2 c_tntuple_saveas
+  write = xform3 c_tntuple_write
+
+instance ITObject TChain where
+  getName = xform0 c_tchain_getname
+  draw = xform1 c_tchain_draw
+  findObject = xform1 c_tchain_findobject
+  saveAs = xform2 c_tchain_saveas
+  write = xform3 c_tchain_write
+
+instance ITObject TTree where
+  getName = xform0 c_ttree_getname
+  draw = xform1 c_ttree_draw
+  findObject = xform1 c_ttree_findobject
+  saveAs = xform2 c_ttree_saveas
+  write = xform3 c_ttree_write
+
+instance ITObject TSliderBox where
+  getName = xform0 c_tsliderbox_getname
+  draw = xform1 c_tsliderbox_draw
+  findObject = xform1 c_tsliderbox_findobject
+  saveAs = xform2 c_tsliderbox_saveas
+  write = xform3 c_tsliderbox_write
+
+instance ITObject TFrame where
+  getName = xform0 c_tframe_getname
+  draw = xform1 c_tframe_draw
+  findObject = xform1 c_tframe_findobject
+  saveAs = xform2 c_tframe_saveas
+  write = xform3 c_tframe_write
+
+instance ITObject TWbox where
+  getName = xform0 c_twbox_getname
+  draw = xform1 c_twbox_draw
+  findObject = xform1 c_twbox_findobject
+  saveAs = xform2 c_twbox_saveas
+  write = xform3 c_twbox_write
+
+instance ITObject TPaveClass where
+  getName = xform0 c_tpaveclass_getname
+  draw = xform1 c_tpaveclass_draw
+  findObject = xform1 c_tpaveclass_findobject
+  saveAs = xform2 c_tpaveclass_saveas
+  write = xform3 c_tpaveclass_write
+
+instance ITObject TPaveLabel where
+  getName = xform0 c_tpavelabel_getname
+  draw = xform1 c_tpavelabel_draw
+  findObject = xform1 c_tpavelabel_findobject
+  saveAs = xform2 c_tpavelabel_saveas
+  write = xform3 c_tpavelabel_write
+
+instance ITObject TLegend where
+  getName = xform0 c_tlegend_getname
+  draw = xform1 c_tlegend_draw
+  findObject = xform1 c_tlegend_findobject
+  saveAs = xform2 c_tlegend_saveas
+  write = xform3 c_tlegend_write
+
+instance ITObject TPavesText where
+  getName = xform0 c_tpavestext_getname
+  draw = xform1 c_tpavestext_draw
+  findObject = xform1 c_tpavestext_findobject
+  saveAs = xform2 c_tpavestext_saveas
+  write = xform3 c_tpavestext_write
+
+instance ITObject TPaveStats where
+  getName = xform0 c_tpavestats_getname
+  draw = xform1 c_tpavestats_draw
+  findObject = xform1 c_tpavestats_findobject
+  saveAs = xform2 c_tpavestats_saveas
+  write = xform3 c_tpavestats_write
+
+instance ITObject TDiamond where
+  getName = xform0 c_tdiamond_getname
+  draw = xform1 c_tdiamond_draw
+  findObject = xform1 c_tdiamond_findobject
+  saveAs = xform2 c_tdiamond_saveas
+  write = xform3 c_tdiamond_write
+
+instance ITObject TPaveText where
+  getName = xform0 c_tpavetext_getname
+  draw = xform1 c_tpavetext_draw
+  findObject = xform1 c_tpavetext_findobject
+  saveAs = xform2 c_tpavetext_saveas
+  write = xform3 c_tpavetext_write
+
+instance ITObject TPave where
+  getName = xform0 c_tpave_getname
+  draw = xform1 c_tpave_draw
+  findObject = xform1 c_tpave_findobject
+  saveAs = xform2 c_tpave_saveas
+  write = xform3 c_tpave_write
+
+instance ITObject TBox where
+  getName = xform0 c_tbox_getname
+  draw = xform1 c_tbox_draw
+  findObject = xform1 c_tbox_findobject
+  saveAs = xform2 c_tbox_saveas
+  write = xform3 c_tbox_write
+
+instance ITObject TXTRU where
+  getName = xform0 c_txtru_getname
+  draw = xform1 c_txtru_draw
+  findObject = xform1 c_txtru_findobject
+  saveAs = xform2 c_txtru_saveas
+  write = xform3 c_txtru_write
+
+instance ITObject TSPHE where
+  getName = xform0 c_tsphe_getname
+  draw = xform1 c_tsphe_draw
+  findObject = xform1 c_tsphe_findobject
+  saveAs = xform2 c_tsphe_saveas
+  write = xform3 c_tsphe_write
+
+instance ITObject TPCON where
+  getName = xform0 c_tpcon_getname
+  draw = xform1 c_tpcon_draw
+  findObject = xform1 c_tpcon_findobject
+  saveAs = xform2 c_tpcon_saveas
+  write = xform3 c_tpcon_write
+
+instance ITObject TTUBE where
+  getName = xform0 c_ttube_getname
+  draw = xform1 c_ttube_draw
+  findObject = xform1 c_ttube_findobject
+  saveAs = xform2 c_ttube_saveas
+  write = xform3 c_ttube_write
+
+instance ITObject TBRIK where
+  getName = xform0 c_tbrik_getname
+  draw = xform1 c_tbrik_draw
+  findObject = xform1 c_tbrik_findobject
+  saveAs = xform2 c_tbrik_saveas
+  write = xform3 c_tbrik_write
+
+instance ITObject TShape where
+  getName = xform0 c_tshape_getname
+  draw = xform1 c_tshape_draw
+  findObject = xform1 c_tshape_findobject
+  saveAs = xform2 c_tshape_saveas
+  write = xform3 c_tshape_write
+
+instance ITObject TGaxis where
+  getName = xform0 c_tgaxis_getname
+  draw = xform1 c_tgaxis_draw
+  findObject = xform1 c_tgaxis_findobject
+  saveAs = xform2 c_tgaxis_saveas
+  write = xform3 c_tgaxis_write
+
+instance ITObject TArrow where
+  getName = xform0 c_tarrow_getname
+  draw = xform1 c_tarrow_draw
+  findObject = xform1 c_tarrow_findobject
+  saveAs = xform2 c_tarrow_saveas
+  write = xform3 c_tarrow_write
+
+instance ITObject TLine where
+  getName = xform0 c_tline_getname
+  draw = xform1 c_tline_draw
+  findObject = xform1 c_tline_findobject
+  saveAs = xform2 c_tline_saveas
+  write = xform3 c_tline_write
+
+instance ITObject TCrown where
+  getName = xform0 c_tcrown_getname
+  draw = xform1 c_tcrown_draw
+  findObject = xform1 c_tcrown_findobject
+  saveAs = xform2 c_tcrown_saveas
+  write = xform3 c_tcrown_write
+
+instance ITObject TArc where
+  getName = xform0 c_tarc_getname
+  draw = xform1 c_tarc_draw
+  findObject = xform1 c_tarc_findobject
+  saveAs = xform2 c_tarc_saveas
+  write = xform3 c_tarc_write
+
+instance ITObject TEllipse where
+  getName = xform0 c_tellipse_getname
+  draw = xform1 c_tellipse_draw
+  findObject = xform1 c_tellipse_findobject
+  saveAs = xform2 c_tellipse_saveas
+  write = xform3 c_tellipse_write
+
+instance ITObject TGraphQQ where
+  getName = xform0 c_tgraphqq_getname
+  draw = xform1 c_tgraphqq_draw
+  findObject = xform1 c_tgraphqq_findobject
+  saveAs = xform2 c_tgraphqq_saveas
+  write = xform3 c_tgraphqq_write
+
+instance ITObject TGraphPolar where
+  getName = xform0 c_tgraphpolar_getname
+  draw = xform1 c_tgraphpolar_draw
+  findObject = xform1 c_tgraphpolar_findobject
+  saveAs = xform2 c_tgraphpolar_saveas
+  write = xform3 c_tgraphpolar_write
+
+instance ITObject TGraphErrors where
+  getName = xform0 c_tgrapherrors_getname
+  draw = xform1 c_tgrapherrors_draw
+  findObject = xform1 c_tgrapherrors_findobject
+  saveAs = xform2 c_tgrapherrors_saveas
+  write = xform3 c_tgrapherrors_write
+
+instance ITObject TGraphBentErrors where
+  getName = xform0 c_tgraphbenterrors_getname
+  draw = xform1 c_tgraphbenterrors_draw
+  findObject = xform1 c_tgraphbenterrors_findobject
+  saveAs = xform2 c_tgraphbenterrors_saveas
+  write = xform3 c_tgraphbenterrors_write
+
+instance ITObject TCutG where
+  getName = xform0 c_tcutg_getname
+  draw = xform1 c_tcutg_draw
+  findObject = xform1 c_tcutg_findobject
+  saveAs = xform2 c_tcutg_saveas
+  write = xform3 c_tcutg_write
+
+instance ITObject TGraphAsymmErrors where
+  getName = xform0 c_tgraphasymmerrors_getname
+  draw = xform1 c_tgraphasymmerrors_draw
+  findObject = xform1 c_tgraphasymmerrors_findobject
+  saveAs = xform2 c_tgraphasymmerrors_saveas
+  write = xform3 c_tgraphasymmerrors_write
+
+instance ITObject TGraph where
+  getName = xform0 c_tgraph_getname
+  draw = xform1 c_tgraph_draw
+  findObject = xform1 c_tgraph_findobject
+  saveAs = xform2 c_tgraph_saveas
+  write = xform3 c_tgraph_write
+
+instance ITObject TF1 where
+  getName = xform0 c_tf1_getname
+  draw = xform1 c_tf1_draw
+  findObject = xform1 c_tf1_findobject
+  saveAs = xform2 c_tf1_saveas
+  write = xform3 c_tf1_write
+
+instance ITObject THStack where
+  getName = xform0 c_thstack_getname
+  draw = xform1 c_thstack_draw
+  findObject = xform1 c_thstack_findobject
+  saveAs = xform2 c_thstack_saveas
+  write = xform3 c_thstack_write
+
+instance ITObject TAttParticle where
+  getName = xform0 c_tattparticle_getname
+  draw = xform1 c_tattparticle_draw
+  findObject = xform1 c_tattparticle_findobject
+  saveAs = xform2 c_tattparticle_saveas
+  write = xform3 c_tattparticle_write
+
+instance ITObject TFormula where
+  getName = xform0 c_tformula_getname
+  draw = xform1 c_tformula_draw
+  findObject = xform1 c_tformula_findobject
+  saveAs = xform2 c_tformula_saveas
+  write = xform3 c_tformula_write
+
+instance ITObject TNamed where
+  getName = xform0 c_tnamed_getname
+  draw = xform1 c_tnamed_draw
+  findObject = xform1 c_tnamed_findobject
+  saveAs = xform2 c_tnamed_saveas
+  write = xform3 c_tnamed_write
+
+instance ITPad TSlider where
+
+instance ITPad TEvePad where
+
+instance ITPad TInspectCanvas where
+
+instance ITPad TDialogCanvas where
+
+instance ITPad TCanvas where
+
+instance ITPad TGroupButton where
+
+instance ITPad TButton where
+
+instance ITPave TPaveClass where
+
+instance ITPave TPaveLabel where
+
+instance ITPave TLegend where
+
+instance ITPave TPavesText where
+
+instance ITPave TPaveStats where
+
+instance ITPave TDiamond where
+
+instance ITPave TPaveText where
+
+instance ITPaveLabel TPaveClass where
+
+instance ITPaveText TPavesText where
+
+instance ITPaveText TPaveStats where
+
+instance ITPaveText TDiamond where
+
+instance ITPolyLine TCurlyArc where
+
+instance ITPolyLine TCurlyLine where
+
+instance ITQObject TRint where
+
+instance ITQObject TApplication where
+
+instance ITQObject TSlider where
+
+instance ITQObject TEvePad where
+
+instance ITQObject TInspectCanvas where
+
+instance ITQObject TDialogCanvas where
+
+instance ITQObject TCanvas where
+
+instance ITQObject TGroupButton where
+
+instance ITQObject TButton where
+
+instance ITQObject TPad where
+
+instance ITQObject TVirtualPad where
+
+instance ITShape TXTRU where
+
+instance ITShape TSPHE where
+
+instance ITShape TPCON where
+
+instance ITShape TTUBE where
+
+instance ITShape TBRIK where
+
+instance ITText TLatex where
+
+instance ITTree TTreeSQL where
+
+instance ITTree TNtupleD where
+
+instance ITTree TNtuple where
+
+instance ITTree TChain where
+
+instance ITVirtualPad TSlider where
+  getFrame = xform0 c_tslider_getframe
+  range = xform4 c_tslider_range
+
+instance ITVirtualPad TEvePad where
+  getFrame = xform0 c_tevepad_getframe
+  range = xform4 c_tevepad_range
+
+instance ITVirtualPad TInspectCanvas where
+  getFrame = xform0 c_tinspectcanvas_getframe
+  range = xform4 c_tinspectcanvas_range
+
+instance ITVirtualPad TDialogCanvas where
+  getFrame = xform0 c_tdialogcanvas_getframe
+  range = xform4 c_tdialogcanvas_range
+
+instance ITVirtualPad TCanvas where
+  getFrame = xform0 c_tcanvas_getframe
+  range = xform4 c_tcanvas_range
+
+instance ITVirtualPad TGroupButton where
+  getFrame = xform0 c_tgroupbutton_getframe
+  range = xform4 c_tgroupbutton_range
+
+instance ITVirtualPad TButton where
+  getFrame = xform0 c_tbutton_getframe
+  range = xform4 c_tbutton_range
+
+instance ITVirtualPad TPad where
+  getFrame = xform0 c_tpad_getframe
+  range = xform4 c_tpad_range
+
+instance ITVirtualTreePlayer TTreePlayer where
+
+instance ITWbox TSliderBox where
+  setBorderMode = xform1 c_tsliderbox_setbordermode
+
+instance ITWbox TFrame where
+  setBorderMode = xform1 c_tframe_setbordermode
+
+newTObject :: IO TObject
+newTObject = xformnull c_tobject_newtobject
+
+newTNamed :: String -> String -> IO TNamed
+newTNamed = xform1 c_tnamed_newtnamed
+
+newTFormula :: String -> String -> IO TFormula
+newTFormula = xform1 c_tformula_newtformula
+
+newTAttAxis :: IO TAttAxis
+newTAttAxis = xformnull c_tattaxis_newtattaxis
+
+newTAttCanvas :: IO TAttCanvas
+newTAttCanvas = xformnull c_tattcanvas_newtattcanvas
+
+newTAttFill :: Int -> Int -> IO TAttFill
+newTAttFill = xform1 c_tattfill_newtattfill
+
+newTAttLine :: Int -> Int -> Int -> IO TAttLine
+newTAttLine = xform2 c_tattline_newtattline
+
+newTAttMarker :: Int -> Int -> Int -> IO TAttMarker
+newTAttMarker = xform2 c_tattmarker_newtattmarker
+
+newTAttPad :: IO TAttPad
+newTAttPad = xformnull c_tattpad_newtattpad
+
+newTAttText :: Int -> Double -> Int -> Int -> Double -> IO TAttText
+newTAttText = xform4 c_tatttext_newtatttext
+
+newTHStack :: String -> String -> IO THStack
+newTHStack = xform1 c_thstack_newthstack
+
+newTF1 :: String -> String -> Double -> Double -> IO TF1
+newTF1 = xform3 c_tf1_newtf1
+
+newTGraph :: Int -> [Double] -> [Double] -> IO TGraph
+newTGraph = xform2 c_tgraph_newtgraph
+
+newTGraphAsymmErrors :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphAsymmErrors
+newTGraphAsymmErrors = xform6 c_tgraphasymmerrors_newtgraphasymmerrors
+
+newTCutG :: String -> Int -> [Double] -> [Double] -> IO TCutG
+newTCutG = xform3 c_tcutg_newtcutg
+
+newTGraphBentErrors :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphBentErrors
+newTGraphBentErrors = xform10 c_tgraphbenterrors_newtgraphbenterrors
+
+newTGraphErrors :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphErrors
+newTGraphErrors = xform4 c_tgrapherrors_newtgrapherrors
+
+newTGraphPolar :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphPolar
+newTGraphPolar = xform4 c_tgraphpolar_newtgraphpolar
+
+newTGraphQQ :: Int -> [Double] -> Int -> [Double] -> IO TGraphQQ
+newTGraphQQ = xform3 c_tgraphqq_newtgraphqq
+
+newTEllipse :: Double -> Double -> Double -> Double -> Double -> Double -> Double -> IO TEllipse
+newTEllipse = xform6 c_tellipse_newtellipse
+
+newTArc :: Double -> Double -> Double -> Double -> Double -> IO TArc
+newTArc = xform4 c_tarc_newtarc
+
+newTCrown :: Double -> Double -> Double -> Double -> Double -> Double -> IO TCrown
+newTCrown = xform5 c_tcrown_newtcrown
+
+newTLine :: Double -> Double -> Double -> Double -> IO TLine
+newTLine = xform3 c_tline_newtline
+
+newTArrow :: Double -> Double -> Double -> Double -> Double -> String -> IO TArrow
+newTArrow = xform5 c_tarrow_newtarrow
+
+newTGaxis :: Double -> Double -> Double -> Double -> Double -> Double -> Int -> String -> Double -> IO TGaxis
+newTGaxis = xform8 c_tgaxis_newtgaxis
+
+newTShape :: String -> String -> String -> IO TShape
+newTShape = xform2 c_tshape_newtshape
+
+newTBRIK :: String -> String -> String -> Double -> Double -> Double -> IO TBRIK
+newTBRIK = xform5 c_tbrik_newtbrik
+
+newTTUBE :: String -> String -> String -> Double -> Double -> Double -> Double -> IO TTUBE
+newTTUBE = xform6 c_ttube_newttube
+
+newTPCON :: String -> String -> String -> Double -> Double -> Int -> IO TPCON
+newTPCON = xform5 c_tpcon_newtpcon
+
+newTSPHE :: String -> String -> String -> Double -> Double -> Double -> Double -> Double -> Double -> IO TSPHE
+newTSPHE = xform8 c_tsphe_newtsphe
+
+newTXTRU :: String -> String -> String -> Int -> Int -> IO TXTRU
+newTXTRU = xform4 c_txtru_newtxtru
+
+newTBox :: Double -> Double -> Double -> Double -> IO TBox
+newTBox = xform3 c_tbox_newtbox
+
+newTPave :: Double -> Double -> Double -> Double -> Int -> String -> IO TPave
+newTPave = xform5 c_tpave_newtpave
+
+newTPaveText :: Double -> Double -> Double -> Double -> String -> IO TPaveText
+newTPaveText = xform4 c_tpavetext_newtpavetext
+
+newTDiamond :: Double -> Double -> Double -> Double -> IO TDiamond
+newTDiamond = xform3 c_tdiamond_newtdiamond
+
+newTPaveStats :: Double -> Double -> Double -> Double -> String -> IO TPaveStats
+newTPaveStats = xform4 c_tpavestats_newtpavestats
+
+newTPavesText :: Double -> Double -> Double -> Double -> Int -> String -> IO TPavesText
+newTPavesText = xform5 c_tpavestext_newtpavestext
+
+newTLegend :: Double -> Double -> Double -> Double -> String -> String -> IO TLegend
+newTLegend = xform5 c_tlegend_newtlegend
+
+newTPaveLabel :: Double -> Double -> Double -> Double -> String -> String -> IO TPaveLabel
+newTPaveLabel = xform5 c_tpavelabel_newtpavelabel
+
+newTWbox :: Double -> Double -> Double -> Double -> Int -> Int -> Int -> IO TWbox
+newTWbox = xform6 c_twbox_newtwbox
+
+newTFrame :: Double -> Double -> Double -> Double -> IO TFrame
+newTFrame = xform3 c_tframe_newtframe
+
+newTSliderBox :: Double -> Double -> Double -> Double -> Int -> Int -> Int -> IO TSliderBox
+newTSliderBox = xform6 c_tsliderbox_newtsliderbox
+
+newTTree :: String -> String -> Int -> IO TTree
+newTTree = xform2 c_ttree_newttree
+
+newTChain :: String -> String -> IO TChain
+newTChain = xform1 c_tchain_newtchain
+
+newTNtuple :: String -> String -> String -> Int -> IO TNtuple
+newTNtuple = xform3 c_tntuple_newtntuple
+
+newTNtupleD :: String -> String -> String -> Int -> IO TNtupleD
+newTNtupleD = xform3 c_tntupled_newtntupled
+
+newTPolyLine :: Int -> [Double] -> [Double] -> String -> IO TPolyLine
+newTPolyLine = xform3 c_tpolyline_newtpolyline
+
+newTCurlyLine :: Double -> Double -> Double -> Double -> Double -> Double -> IO TCurlyLine
+newTCurlyLine = xform5 c_tcurlyline_newtcurlyline
+
+newTCurlyArc :: Double -> Double -> Double -> Double -> Double -> Double -> Double -> IO TCurlyArc
+newTCurlyArc = xform6 c_tcurlyarc_newtcurlyarc
+
+newTAxis :: Int -> Double -> Double -> IO TAxis
+newTAxis = xform2 c_taxis_newtaxis
+
+newTLatex :: Double -> Double -> String -> IO TLatex
+newTLatex = xform2 c_tlatex_newtlatex
+
+newTFile :: String -> String -> String -> Int -> IO TFile
+newTFile = xform3 c_tfile_newtfile
+
+newTH1F :: String -> String -> Int -> Double -> Double -> IO TH1F
+newTH1F = xform4 c_th1f_newth1f
+
+newTH2F :: String -> String -> Int -> Double -> Double -> Int -> Double -> Double -> IO TH2F
+newTH2F = xform7 c_th2f_newth2f
+
+newTCanvas :: String -> String -> Int -> Int -> IO TCanvas
+newTCanvas = xform3 c_tcanvas_newtcanvas
+
+newTApplication :: String -> [Int] -> [String] -> IO TApplication
+newTApplication = xform2 c_tapplication_newtapplication
+
+newTRint :: String -> [Int] -> [String] -> IO TRint
+newTRint = xform2 c_trint_newtrint
+
+newTRandom :: Int -> IO TRandom
+newTRandom = xform0 c_trandom_newtrandom
+
+tLatexDrawLatex :: TLatex -> Double -> Double -> String -> IO TLatex
+tLatexDrawLatex = xform3 c_tlatex_tlatexdrawlatex
+
+tH1GetAsymmetry :: TH1 -> TH1 -> Double -> Double -> IO TH1
+tH1GetAsymmetry = xform3 c_th1_th1getasymmetry
+
+tH1GetBufferLength :: TH1 -> IO Int
+tH1GetBufferLength = xform0 c_th1_th1getbufferlength
+
+tH1GetBufferSize :: TH1 -> IO Int
+tH1GetBufferSize = xform0 c_th1_th1getbuffersize
+
+tH1GetDirectory :: TH1 -> IO TDirectory
+tH1GetDirectory = xform0 c_th1_th1getdirectory
+
+tH1GetXaxis :: TH1 -> IO TAxis
+tH1GetXaxis = xform0 c_th1_th1getxaxis
+
+tH1GetYaxis :: TH1 -> IO TAxis
+tH1GetYaxis = xform0 c_th1_th1getyaxis
+
+tH1GetZaxis :: TH1 -> IO TAxis
+tH1GetZaxis = xform0 c_th1_th1getzaxis
diff --git a/src/HROOT/Class/Interface.hs b/src/HROOT/Class/Interface.hs
new file mode 100644
--- /dev/null
+++ b/src/HROOT/Class/Interface.hs
@@ -0,0 +1,1363 @@
+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, 
+             FlexibleInstances, TypeSynonymInstances, UndecidableInstances, 
+             EmptyDataDecls, IncoherentInstances, ExistentialQuantification #-}
+
+module HROOT.Class.Interface where
+
+import Foreign.C            
+import Foreign.Ptr
+import Foreign.ForeignPtr
+import Foreign.Marshal.Array
+
+
+import System.IO.Unsafe
+
+class Castable a b where
+  cast :: a -> b 
+  uncast :: b -> a 
+
+class FPtr a where
+  type Raw a :: *
+  get_fptr :: a -> ForeignPtr (Raw a) 
+  cast_fptr_to_obj :: ForeignPtr (Raw a) -> a
+
+class Existable a where
+  data Exist a :: *  
+
+instance Castable a a where
+  cast = id
+  uncast = id
+
+instance Castable Int CInt where
+  cast = fromIntegral 
+  uncast = fromIntegral
+  
+instance Castable Double CDouble where
+  cast = realToFrac
+  uncast = realToFrac 
+
+instance Castable [Double] (Ptr CDouble) where
+  cast xs = unsafePerformIO (newArray (map realToFrac xs))
+  uncast _c_xs = undefined 
+
+instance Castable [Int] (Ptr CInt) where
+  cast xs = unsafePerformIO (newArray (map fromIntegral xs))
+  uncast _c_xs = undefined 
+
+instance Castable String CString where
+  cast x = unsafePerformIO (newCString x)
+  uncast x = unsafePerformIO (peekCString x) 
+
+instance Castable [String] (Ptr CString) where
+  cast xs = unsafePerformIO (mapM  newCString xs >>= newArray)
+  uncast _c_xs = undefined
+
+instance (Castable a a', Castable b b') => Castable (a->b) (a'->b') where
+  cast f = cast . f . uncast
+  uncast f = uncast . f . cast 
+
+
+xformnull :: (Castable a ca) => (IO ca) -> IO a
+xformnull f = f >>= return . uncast
+
+xform0 :: (Castable a ca, Castable y cy) 
+       => (ca -> IO cy) -> a -> IO y
+xform0 f a = f (cast a) >>= return . uncast 
+
+xform1 :: (Castable a ca, Castable x1 cx1, Castable y cy) 
+       => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y
+xform1 f a x1 = f (cast a) (cast x1) >>= return . uncast 
+
+xform2 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2-> IO y
+xform2 f a x1 x2 = f (cast a) (cast x1) (cast x2) >>= return . uncast 
+
+xform3 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> IO cy) -> a -> x1 -> x2 -> x3 -> IO y
+xform3 f a x1 x2 x3 = f (cast a) (cast x1) (cast x2) (cast x3) >>= return . uncast 
+
+xform4 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> IO y
+xform4 f a x1 x2 x3 x4 = f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) >>= return . uncast 
+
+xform5 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y
+xform5 f a x1 x2 x3 x4 x5 = f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) >>= return . uncast 
+
+xform6 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable x6 cx6, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> IO y
+xform6 f a x1 x2 x3 x4 x5 x6 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) 
+  >>= return . uncast 
+
+xform7 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> IO y
+xform7 f a x1 x2 x3 x4 x5 x6 x7 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7)
+  >>= return . uncast 
+
+xform8 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> IO y
+xform8 f a x1 x2 x3 x4 x5 x6 x7 x8 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7) (cast x8)
+  >>= return . uncast 
+
+xform9 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9, 
+           Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> IO y
+xform9 f a x1 x2 x3 x4 x5 x6 x7 x8 x9 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7) (cast x8) (cast x9)
+  >>= return . uncast 
+
+xform10 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+            Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9,  
+            Castable x10 cx10, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> cx10 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> x10 -> IO y
+xform10 f a x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7) (cast x8) (cast x9) (cast x10) >>= return . uncast 
+
+
+
+data RawTObject
+newtype TObject = TObject (ForeignPtr RawTObject) deriving (Eq, Ord, Show)
+instance FPtr TObject where
+   type Raw TObject = RawTObject
+   get_fptr (TObject fptr) = fptr
+   cast_fptr_to_obj = TObject
+instance Existable TObject where
+  data Exist TObject = forall a. (FPtr a, ITObject a) => ETObject a
+
+data RawTNamed
+newtype TNamed = TNamed (ForeignPtr RawTNamed) deriving (Eq, Ord, Show)
+instance FPtr TNamed where
+   type Raw TNamed = RawTNamed
+   get_fptr (TNamed fptr) = fptr
+   cast_fptr_to_obj = TNamed
+instance Existable TNamed where
+  data Exist TNamed = forall a. (FPtr a, ITNamed a) => ETNamed a
+
+data RawTFormula
+newtype TFormula = TFormula (ForeignPtr RawTFormula) deriving (Eq, Ord, Show)
+instance FPtr TFormula where
+   type Raw TFormula = RawTFormula
+   get_fptr (TFormula fptr) = fptr
+   cast_fptr_to_obj = TFormula
+instance Existable TFormula where
+  data Exist TFormula = forall a. (FPtr a, ITFormula a) => ETFormula a
+
+data RawTAtt3D
+newtype TAtt3D = TAtt3D (ForeignPtr RawTAtt3D) deriving (Eq, Ord, Show)
+instance FPtr TAtt3D where
+   type Raw TAtt3D = RawTAtt3D
+   get_fptr (TAtt3D fptr) = fptr
+   cast_fptr_to_obj = TAtt3D
+instance Existable TAtt3D where
+  data Exist TAtt3D = forall a. (FPtr a, ITAtt3D a) => ETAtt3D a
+
+data RawTAttAxis
+newtype TAttAxis = TAttAxis (ForeignPtr RawTAttAxis) deriving (Eq, Ord, Show)
+instance FPtr TAttAxis where
+   type Raw TAttAxis = RawTAttAxis
+   get_fptr (TAttAxis fptr) = fptr
+   cast_fptr_to_obj = TAttAxis
+instance Existable TAttAxis where
+  data Exist TAttAxis = forall a. (FPtr a, ITAttAxis a) => ETAttAxis a
+
+data RawTAttBBox
+newtype TAttBBox = TAttBBox (ForeignPtr RawTAttBBox) deriving (Eq, Ord, Show)
+instance FPtr TAttBBox where
+   type Raw TAttBBox = RawTAttBBox
+   get_fptr (TAttBBox fptr) = fptr
+   cast_fptr_to_obj = TAttBBox
+instance Existable TAttBBox where
+  data Exist TAttBBox = forall a. (FPtr a, ITAttBBox a) => ETAttBBox a
+
+data RawTAttCanvas
+newtype TAttCanvas = TAttCanvas (ForeignPtr RawTAttCanvas) deriving (Eq, Ord, Show)
+instance FPtr TAttCanvas where
+   type Raw TAttCanvas = RawTAttCanvas
+   get_fptr (TAttCanvas fptr) = fptr
+   cast_fptr_to_obj = TAttCanvas
+instance Existable TAttCanvas where
+  data Exist TAttCanvas = forall a. (FPtr a, ITAttCanvas a) => ETAttCanvas a
+
+data RawTAttFill
+newtype TAttFill = TAttFill (ForeignPtr RawTAttFill) deriving (Eq, Ord, Show)
+instance FPtr TAttFill where
+   type Raw TAttFill = RawTAttFill
+   get_fptr (TAttFill fptr) = fptr
+   cast_fptr_to_obj = TAttFill
+instance Existable TAttFill where
+  data Exist TAttFill = forall a. (FPtr a, ITAttFill a) => ETAttFill a
+
+data RawTAttImage
+newtype TAttImage = TAttImage (ForeignPtr RawTAttImage) deriving (Eq, Ord, Show)
+instance FPtr TAttImage where
+   type Raw TAttImage = RawTAttImage
+   get_fptr (TAttImage fptr) = fptr
+   cast_fptr_to_obj = TAttImage
+instance Existable TAttImage where
+  data Exist TAttImage = forall a. (FPtr a, ITAttImage a) => ETAttImage a
+
+data RawTAttLine
+newtype TAttLine = TAttLine (ForeignPtr RawTAttLine) deriving (Eq, Ord, Show)
+instance FPtr TAttLine where
+   type Raw TAttLine = RawTAttLine
+   get_fptr (TAttLine fptr) = fptr
+   cast_fptr_to_obj = TAttLine
+instance Existable TAttLine where
+  data Exist TAttLine = forall a. (FPtr a, ITAttLine a) => ETAttLine a
+
+data RawTAttMarker
+newtype TAttMarker = TAttMarker (ForeignPtr RawTAttMarker) deriving (Eq, Ord, Show)
+instance FPtr TAttMarker where
+   type Raw TAttMarker = RawTAttMarker
+   get_fptr (TAttMarker fptr) = fptr
+   cast_fptr_to_obj = TAttMarker
+instance Existable TAttMarker where
+  data Exist TAttMarker = forall a. (FPtr a, ITAttMarker a) => ETAttMarker a
+
+data RawTAttPad
+newtype TAttPad = TAttPad (ForeignPtr RawTAttPad) deriving (Eq, Ord, Show)
+instance FPtr TAttPad where
+   type Raw TAttPad = RawTAttPad
+   get_fptr (TAttPad fptr) = fptr
+   cast_fptr_to_obj = TAttPad
+instance Existable TAttPad where
+  data Exist TAttPad = forall a. (FPtr a, ITAttPad a) => ETAttPad a
+
+data RawTAttParticle
+newtype TAttParticle = TAttParticle (ForeignPtr RawTAttParticle) deriving (Eq, Ord, Show)
+instance FPtr TAttParticle where
+   type Raw TAttParticle = RawTAttParticle
+   get_fptr (TAttParticle fptr) = fptr
+   cast_fptr_to_obj = TAttParticle
+instance Existable TAttParticle where
+  data Exist TAttParticle = forall a. (FPtr a, ITAttParticle a) => ETAttParticle a
+
+data RawTAttText
+newtype TAttText = TAttText (ForeignPtr RawTAttText) deriving (Eq, Ord, Show)
+instance FPtr TAttText where
+   type Raw TAttText = RawTAttText
+   get_fptr (TAttText fptr) = fptr
+   cast_fptr_to_obj = TAttText
+instance Existable TAttText where
+  data Exist TAttText = forall a. (FPtr a, ITAttText a) => ETAttText a
+
+data RawTHStack
+newtype THStack = THStack (ForeignPtr RawTHStack) deriving (Eq, Ord, Show)
+instance FPtr THStack where
+   type Raw THStack = RawTHStack
+   get_fptr (THStack fptr) = fptr
+   cast_fptr_to_obj = THStack
+instance Existable THStack where
+  data Exist THStack = forall a. (FPtr a, ITHStack a) => ETHStack a
+
+data RawTF1
+newtype TF1 = TF1 (ForeignPtr RawTF1) deriving (Eq, Ord, Show)
+instance FPtr TF1 where
+   type Raw TF1 = RawTF1
+   get_fptr (TF1 fptr) = fptr
+   cast_fptr_to_obj = TF1
+instance Existable TF1 where
+  data Exist TF1 = forall a. (FPtr a, ITF1 a) => ETF1 a
+
+data RawTGraph
+newtype TGraph = TGraph (ForeignPtr RawTGraph) deriving (Eq, Ord, Show)
+instance FPtr TGraph where
+   type Raw TGraph = RawTGraph
+   get_fptr (TGraph fptr) = fptr
+   cast_fptr_to_obj = TGraph
+instance Existable TGraph where
+  data Exist TGraph = forall a. (FPtr a, ITGraph a) => ETGraph a
+
+data RawTGraphAsymmErrors
+newtype TGraphAsymmErrors = TGraphAsymmErrors (ForeignPtr RawTGraphAsymmErrors) deriving (Eq, Ord, Show)
+instance FPtr TGraphAsymmErrors where
+   type Raw TGraphAsymmErrors = RawTGraphAsymmErrors
+   get_fptr (TGraphAsymmErrors fptr) = fptr
+   cast_fptr_to_obj = TGraphAsymmErrors
+instance Existable TGraphAsymmErrors where
+  data Exist TGraphAsymmErrors = forall a. (FPtr a, ITGraphAsymmErrors a) => ETGraphAsymmErrors a
+
+data RawTCutG
+newtype TCutG = TCutG (ForeignPtr RawTCutG) deriving (Eq, Ord, Show)
+instance FPtr TCutG where
+   type Raw TCutG = RawTCutG
+   get_fptr (TCutG fptr) = fptr
+   cast_fptr_to_obj = TCutG
+instance Existable TCutG where
+  data Exist TCutG = forall a. (FPtr a, ITCutG a) => ETCutG a
+
+data RawTGraphBentErrors
+newtype TGraphBentErrors = TGraphBentErrors (ForeignPtr RawTGraphBentErrors) deriving (Eq, Ord, Show)
+instance FPtr TGraphBentErrors where
+   type Raw TGraphBentErrors = RawTGraphBentErrors
+   get_fptr (TGraphBentErrors fptr) = fptr
+   cast_fptr_to_obj = TGraphBentErrors
+instance Existable TGraphBentErrors where
+  data Exist TGraphBentErrors = forall a. (FPtr a, ITGraphBentErrors a) => ETGraphBentErrors a
+
+data RawTGraphErrors
+newtype TGraphErrors = TGraphErrors (ForeignPtr RawTGraphErrors) deriving (Eq, Ord, Show)
+instance FPtr TGraphErrors where
+   type Raw TGraphErrors = RawTGraphErrors
+   get_fptr (TGraphErrors fptr) = fptr
+   cast_fptr_to_obj = TGraphErrors
+instance Existable TGraphErrors where
+  data Exist TGraphErrors = forall a. (FPtr a, ITGraphErrors a) => ETGraphErrors a
+
+data RawTGraphPolar
+newtype TGraphPolar = TGraphPolar (ForeignPtr RawTGraphPolar) deriving (Eq, Ord, Show)
+instance FPtr TGraphPolar where
+   type Raw TGraphPolar = RawTGraphPolar
+   get_fptr (TGraphPolar fptr) = fptr
+   cast_fptr_to_obj = TGraphPolar
+instance Existable TGraphPolar where
+  data Exist TGraphPolar = forall a. (FPtr a, ITGraphPolar a) => ETGraphPolar a
+
+data RawTGraphQQ
+newtype TGraphQQ = TGraphQQ (ForeignPtr RawTGraphQQ) deriving (Eq, Ord, Show)
+instance FPtr TGraphQQ where
+   type Raw TGraphQQ = RawTGraphQQ
+   get_fptr (TGraphQQ fptr) = fptr
+   cast_fptr_to_obj = TGraphQQ
+instance Existable TGraphQQ where
+  data Exist TGraphQQ = forall a. (FPtr a, ITGraphQQ a) => ETGraphQQ a
+
+data RawTEllipse
+newtype TEllipse = TEllipse (ForeignPtr RawTEllipse) deriving (Eq, Ord, Show)
+instance FPtr TEllipse where
+   type Raw TEllipse = RawTEllipse
+   get_fptr (TEllipse fptr) = fptr
+   cast_fptr_to_obj = TEllipse
+instance Existable TEllipse where
+  data Exist TEllipse = forall a. (FPtr a, ITEllipse a) => ETEllipse a
+
+data RawTArc
+newtype TArc = TArc (ForeignPtr RawTArc) deriving (Eq, Ord, Show)
+instance FPtr TArc where
+   type Raw TArc = RawTArc
+   get_fptr (TArc fptr) = fptr
+   cast_fptr_to_obj = TArc
+instance Existable TArc where
+  data Exist TArc = forall a. (FPtr a, ITArc a) => ETArc a
+
+data RawTCrown
+newtype TCrown = TCrown (ForeignPtr RawTCrown) deriving (Eq, Ord, Show)
+instance FPtr TCrown where
+   type Raw TCrown = RawTCrown
+   get_fptr (TCrown fptr) = fptr
+   cast_fptr_to_obj = TCrown
+instance Existable TCrown where
+  data Exist TCrown = forall a. (FPtr a, ITCrown a) => ETCrown a
+
+data RawTLine
+newtype TLine = TLine (ForeignPtr RawTLine) deriving (Eq, Ord, Show)
+instance FPtr TLine where
+   type Raw TLine = RawTLine
+   get_fptr (TLine fptr) = fptr
+   cast_fptr_to_obj = TLine
+instance Existable TLine where
+  data Exist TLine = forall a. (FPtr a, ITLine a) => ETLine a
+
+data RawTArrow
+newtype TArrow = TArrow (ForeignPtr RawTArrow) deriving (Eq, Ord, Show)
+instance FPtr TArrow where
+   type Raw TArrow = RawTArrow
+   get_fptr (TArrow fptr) = fptr
+   cast_fptr_to_obj = TArrow
+instance Existable TArrow where
+  data Exist TArrow = forall a. (FPtr a, ITArrow a) => ETArrow a
+
+data RawTGaxis
+newtype TGaxis = TGaxis (ForeignPtr RawTGaxis) deriving (Eq, Ord, Show)
+instance FPtr TGaxis where
+   type Raw TGaxis = RawTGaxis
+   get_fptr (TGaxis fptr) = fptr
+   cast_fptr_to_obj = TGaxis
+instance Existable TGaxis where
+  data Exist TGaxis = forall a. (FPtr a, ITGaxis a) => ETGaxis a
+
+data RawTShape
+newtype TShape = TShape (ForeignPtr RawTShape) deriving (Eq, Ord, Show)
+instance FPtr TShape where
+   type Raw TShape = RawTShape
+   get_fptr (TShape fptr) = fptr
+   cast_fptr_to_obj = TShape
+instance Existable TShape where
+  data Exist TShape = forall a. (FPtr a, ITShape a) => ETShape a
+
+data RawTBRIK
+newtype TBRIK = TBRIK (ForeignPtr RawTBRIK) deriving (Eq, Ord, Show)
+instance FPtr TBRIK where
+   type Raw TBRIK = RawTBRIK
+   get_fptr (TBRIK fptr) = fptr
+   cast_fptr_to_obj = TBRIK
+instance Existable TBRIK where
+  data Exist TBRIK = forall a. (FPtr a, ITBRIK a) => ETBRIK a
+
+data RawTTUBE
+newtype TTUBE = TTUBE (ForeignPtr RawTTUBE) deriving (Eq, Ord, Show)
+instance FPtr TTUBE where
+   type Raw TTUBE = RawTTUBE
+   get_fptr (TTUBE fptr) = fptr
+   cast_fptr_to_obj = TTUBE
+instance Existable TTUBE where
+  data Exist TTUBE = forall a. (FPtr a, ITTUBE a) => ETTUBE a
+
+data RawTPCON
+newtype TPCON = TPCON (ForeignPtr RawTPCON) deriving (Eq, Ord, Show)
+instance FPtr TPCON where
+   type Raw TPCON = RawTPCON
+   get_fptr (TPCON fptr) = fptr
+   cast_fptr_to_obj = TPCON
+instance Existable TPCON where
+  data Exist TPCON = forall a. (FPtr a, ITPCON a) => ETPCON a
+
+data RawTSPHE
+newtype TSPHE = TSPHE (ForeignPtr RawTSPHE) deriving (Eq, Ord, Show)
+instance FPtr TSPHE where
+   type Raw TSPHE = RawTSPHE
+   get_fptr (TSPHE fptr) = fptr
+   cast_fptr_to_obj = TSPHE
+instance Existable TSPHE where
+  data Exist TSPHE = forall a. (FPtr a, ITSPHE a) => ETSPHE a
+
+data RawTXTRU
+newtype TXTRU = TXTRU (ForeignPtr RawTXTRU) deriving (Eq, Ord, Show)
+instance FPtr TXTRU where
+   type Raw TXTRU = RawTXTRU
+   get_fptr (TXTRU fptr) = fptr
+   cast_fptr_to_obj = TXTRU
+instance Existable TXTRU where
+  data Exist TXTRU = forall a. (FPtr a, ITXTRU a) => ETXTRU a
+
+data RawTBox
+newtype TBox = TBox (ForeignPtr RawTBox) deriving (Eq, Ord, Show)
+instance FPtr TBox where
+   type Raw TBox = RawTBox
+   get_fptr (TBox fptr) = fptr
+   cast_fptr_to_obj = TBox
+instance Existable TBox where
+  data Exist TBox = forall a. (FPtr a, ITBox a) => ETBox a
+
+data RawTPave
+newtype TPave = TPave (ForeignPtr RawTPave) deriving (Eq, Ord, Show)
+instance FPtr TPave where
+   type Raw TPave = RawTPave
+   get_fptr (TPave fptr) = fptr
+   cast_fptr_to_obj = TPave
+instance Existable TPave where
+  data Exist TPave = forall a. (FPtr a, ITPave a) => ETPave a
+
+data RawTPaveText
+newtype TPaveText = TPaveText (ForeignPtr RawTPaveText) deriving (Eq, Ord, Show)
+instance FPtr TPaveText where
+   type Raw TPaveText = RawTPaveText
+   get_fptr (TPaveText fptr) = fptr
+   cast_fptr_to_obj = TPaveText
+instance Existable TPaveText where
+  data Exist TPaveText = forall a. (FPtr a, ITPaveText a) => ETPaveText a
+
+data RawTDiamond
+newtype TDiamond = TDiamond (ForeignPtr RawTDiamond) deriving (Eq, Ord, Show)
+instance FPtr TDiamond where
+   type Raw TDiamond = RawTDiamond
+   get_fptr (TDiamond fptr) = fptr
+   cast_fptr_to_obj = TDiamond
+instance Existable TDiamond where
+  data Exist TDiamond = forall a. (FPtr a, ITDiamond a) => ETDiamond a
+
+data RawTPaveStats
+newtype TPaveStats = TPaveStats (ForeignPtr RawTPaveStats) deriving (Eq, Ord, Show)
+instance FPtr TPaveStats where
+   type Raw TPaveStats = RawTPaveStats
+   get_fptr (TPaveStats fptr) = fptr
+   cast_fptr_to_obj = TPaveStats
+instance Existable TPaveStats where
+  data Exist TPaveStats = forall a. (FPtr a, ITPaveStats a) => ETPaveStats a
+
+data RawTPavesText
+newtype TPavesText = TPavesText (ForeignPtr RawTPavesText) deriving (Eq, Ord, Show)
+instance FPtr TPavesText where
+   type Raw TPavesText = RawTPavesText
+   get_fptr (TPavesText fptr) = fptr
+   cast_fptr_to_obj = TPavesText
+instance Existable TPavesText where
+  data Exist TPavesText = forall a. (FPtr a, ITPavesText a) => ETPavesText a
+
+data RawTLegend
+newtype TLegend = TLegend (ForeignPtr RawTLegend) deriving (Eq, Ord, Show)
+instance FPtr TLegend where
+   type Raw TLegend = RawTLegend
+   get_fptr (TLegend fptr) = fptr
+   cast_fptr_to_obj = TLegend
+instance Existable TLegend where
+  data Exist TLegend = forall a. (FPtr a, ITLegend a) => ETLegend a
+
+data RawTPaveLabel
+newtype TPaveLabel = TPaveLabel (ForeignPtr RawTPaveLabel) deriving (Eq, Ord, Show)
+instance FPtr TPaveLabel where
+   type Raw TPaveLabel = RawTPaveLabel
+   get_fptr (TPaveLabel fptr) = fptr
+   cast_fptr_to_obj = TPaveLabel
+instance Existable TPaveLabel where
+  data Exist TPaveLabel = forall a. (FPtr a, ITPaveLabel a) => ETPaveLabel a
+
+data RawTPaveClass
+newtype TPaveClass = TPaveClass (ForeignPtr RawTPaveClass) deriving (Eq, Ord, Show)
+instance FPtr TPaveClass where
+   type Raw TPaveClass = RawTPaveClass
+   get_fptr (TPaveClass fptr) = fptr
+   cast_fptr_to_obj = TPaveClass
+instance Existable TPaveClass where
+  data Exist TPaveClass = forall a. (FPtr a, ITPaveClass a) => ETPaveClass a
+
+data RawTWbox
+newtype TWbox = TWbox (ForeignPtr RawTWbox) deriving (Eq, Ord, Show)
+instance FPtr TWbox where
+   type Raw TWbox = RawTWbox
+   get_fptr (TWbox fptr) = fptr
+   cast_fptr_to_obj = TWbox
+instance Existable TWbox where
+  data Exist TWbox = forall a. (FPtr a, ITWbox a) => ETWbox a
+
+data RawTFrame
+newtype TFrame = TFrame (ForeignPtr RawTFrame) deriving (Eq, Ord, Show)
+instance FPtr TFrame where
+   type Raw TFrame = RawTFrame
+   get_fptr (TFrame fptr) = fptr
+   cast_fptr_to_obj = TFrame
+instance Existable TFrame where
+  data Exist TFrame = forall a. (FPtr a, ITFrame a) => ETFrame a
+
+data RawTSliderBox
+newtype TSliderBox = TSliderBox (ForeignPtr RawTSliderBox) deriving (Eq, Ord, Show)
+instance FPtr TSliderBox where
+   type Raw TSliderBox = RawTSliderBox
+   get_fptr (TSliderBox fptr) = fptr
+   cast_fptr_to_obj = TSliderBox
+instance Existable TSliderBox where
+  data Exist TSliderBox = forall a. (FPtr a, ITSliderBox a) => ETSliderBox a
+
+data RawTTree
+newtype TTree = TTree (ForeignPtr RawTTree) deriving (Eq, Ord, Show)
+instance FPtr TTree where
+   type Raw TTree = RawTTree
+   get_fptr (TTree fptr) = fptr
+   cast_fptr_to_obj = TTree
+instance Existable TTree where
+  data Exist TTree = forall a. (FPtr a, ITTree a) => ETTree a
+
+data RawTChain
+newtype TChain = TChain (ForeignPtr RawTChain) deriving (Eq, Ord, Show)
+instance FPtr TChain where
+   type Raw TChain = RawTChain
+   get_fptr (TChain fptr) = fptr
+   cast_fptr_to_obj = TChain
+instance Existable TChain where
+  data Exist TChain = forall a. (FPtr a, ITChain a) => ETChain a
+
+data RawTNtuple
+newtype TNtuple = TNtuple (ForeignPtr RawTNtuple) deriving (Eq, Ord, Show)
+instance FPtr TNtuple where
+   type Raw TNtuple = RawTNtuple
+   get_fptr (TNtuple fptr) = fptr
+   cast_fptr_to_obj = TNtuple
+instance Existable TNtuple where
+  data Exist TNtuple = forall a. (FPtr a, ITNtuple a) => ETNtuple a
+
+data RawTNtupleD
+newtype TNtupleD = TNtupleD (ForeignPtr RawTNtupleD) deriving (Eq, Ord, Show)
+instance FPtr TNtupleD where
+   type Raw TNtupleD = RawTNtupleD
+   get_fptr (TNtupleD fptr) = fptr
+   cast_fptr_to_obj = TNtupleD
+instance Existable TNtupleD where
+  data Exist TNtupleD = forall a. (FPtr a, ITNtupleD a) => ETNtupleD a
+
+data RawTTreeSQL
+newtype TTreeSQL = TTreeSQL (ForeignPtr RawTTreeSQL) deriving (Eq, Ord, Show)
+instance FPtr TTreeSQL where
+   type Raw TTreeSQL = RawTTreeSQL
+   get_fptr (TTreeSQL fptr) = fptr
+   cast_fptr_to_obj = TTreeSQL
+instance Existable TTreeSQL where
+  data Exist TTreeSQL = forall a. (FPtr a, ITTreeSQL a) => ETTreeSQL a
+
+data RawTPolyLine
+newtype TPolyLine = TPolyLine (ForeignPtr RawTPolyLine) deriving (Eq, Ord, Show)
+instance FPtr TPolyLine where
+   type Raw TPolyLine = RawTPolyLine
+   get_fptr (TPolyLine fptr) = fptr
+   cast_fptr_to_obj = TPolyLine
+instance Existable TPolyLine where
+  data Exist TPolyLine = forall a. (FPtr a, ITPolyLine a) => ETPolyLine a
+
+data RawTCurlyLine
+newtype TCurlyLine = TCurlyLine (ForeignPtr RawTCurlyLine) deriving (Eq, Ord, Show)
+instance FPtr TCurlyLine where
+   type Raw TCurlyLine = RawTCurlyLine
+   get_fptr (TCurlyLine fptr) = fptr
+   cast_fptr_to_obj = TCurlyLine
+instance Existable TCurlyLine where
+  data Exist TCurlyLine = forall a. (FPtr a, ITCurlyLine a) => ETCurlyLine a
+
+data RawTCurlyArc
+newtype TCurlyArc = TCurlyArc (ForeignPtr RawTCurlyArc) deriving (Eq, Ord, Show)
+instance FPtr TCurlyArc where
+   type Raw TCurlyArc = RawTCurlyArc
+   get_fptr (TCurlyArc fptr) = fptr
+   cast_fptr_to_obj = TCurlyArc
+instance Existable TCurlyArc where
+  data Exist TCurlyArc = forall a. (FPtr a, ITCurlyArc a) => ETCurlyArc a
+
+data RawTEfficiency
+newtype TEfficiency = TEfficiency (ForeignPtr RawTEfficiency) deriving (Eq, Ord, Show)
+instance FPtr TEfficiency where
+   type Raw TEfficiency = RawTEfficiency
+   get_fptr (TEfficiency fptr) = fptr
+   cast_fptr_to_obj = TEfficiency
+instance Existable TEfficiency where
+  data Exist TEfficiency = forall a. (FPtr a, ITEfficiency a) => ETEfficiency a
+
+data RawTAxis
+newtype TAxis = TAxis (ForeignPtr RawTAxis) deriving (Eq, Ord, Show)
+instance FPtr TAxis where
+   type Raw TAxis = RawTAxis
+   get_fptr (TAxis fptr) = fptr
+   cast_fptr_to_obj = TAxis
+instance Existable TAxis where
+  data Exist TAxis = forall a. (FPtr a, ITAxis a) => ETAxis a
+
+data RawTLatex
+newtype TLatex = TLatex (ForeignPtr RawTLatex) deriving (Eq, Ord, Show)
+instance FPtr TLatex where
+   type Raw TLatex = RawTLatex
+   get_fptr (TLatex fptr) = fptr
+   cast_fptr_to_obj = TLatex
+instance Existable TLatex where
+  data Exist TLatex = forall a. (FPtr a, ITLatex a) => ETLatex a
+
+data RawTText
+newtype TText = TText (ForeignPtr RawTText) deriving (Eq, Ord, Show)
+instance FPtr TText where
+   type Raw TText = RawTText
+   get_fptr (TText fptr) = fptr
+   cast_fptr_to_obj = TText
+instance Existable TText where
+  data Exist TText = forall a. (FPtr a, ITText a) => ETText a
+
+data RawTDirectory
+newtype TDirectory = TDirectory (ForeignPtr RawTDirectory) deriving (Eq, Ord, Show)
+instance FPtr TDirectory where
+   type Raw TDirectory = RawTDirectory
+   get_fptr (TDirectory fptr) = fptr
+   cast_fptr_to_obj = TDirectory
+instance Existable TDirectory where
+  data Exist TDirectory = forall a. (FPtr a, ITDirectory a) => ETDirectory a
+
+data RawTDirectoryFile
+newtype TDirectoryFile = TDirectoryFile (ForeignPtr RawTDirectoryFile) deriving (Eq, Ord, Show)
+instance FPtr TDirectoryFile where
+   type Raw TDirectoryFile = RawTDirectoryFile
+   get_fptr (TDirectoryFile fptr) = fptr
+   cast_fptr_to_obj = TDirectoryFile
+instance Existable TDirectoryFile where
+  data Exist TDirectoryFile = forall a. (FPtr a, ITDirectoryFile a) => ETDirectoryFile a
+
+data RawTFile
+newtype TFile = TFile (ForeignPtr RawTFile) deriving (Eq, Ord, Show)
+instance FPtr TFile where
+   type Raw TFile = RawTFile
+   get_fptr (TFile fptr) = fptr
+   cast_fptr_to_obj = TFile
+instance Existable TFile where
+  data Exist TFile = forall a. (FPtr a, ITFile a) => ETFile a
+
+data RawTBranch
+newtype TBranch = TBranch (ForeignPtr RawTBranch) deriving (Eq, Ord, Show)
+instance FPtr TBranch where
+   type Raw TBranch = RawTBranch
+   get_fptr (TBranch fptr) = fptr
+   cast_fptr_to_obj = TBranch
+instance Existable TBranch where
+  data Exist TBranch = forall a. (FPtr a, ITBranch a) => ETBranch a
+
+data RawTVirtualTreePlayer
+newtype TVirtualTreePlayer = TVirtualTreePlayer (ForeignPtr RawTVirtualTreePlayer) deriving (Eq, Ord, Show)
+instance FPtr TVirtualTreePlayer where
+   type Raw TVirtualTreePlayer = RawTVirtualTreePlayer
+   get_fptr (TVirtualTreePlayer fptr) = fptr
+   cast_fptr_to_obj = TVirtualTreePlayer
+instance Existable TVirtualTreePlayer where
+  data Exist TVirtualTreePlayer = forall a. (FPtr a, ITVirtualTreePlayer a) => ETVirtualTreePlayer a
+
+data RawTTreePlayer
+newtype TTreePlayer = TTreePlayer (ForeignPtr RawTTreePlayer) deriving (Eq, Ord, Show)
+instance FPtr TTreePlayer where
+   type Raw TTreePlayer = RawTTreePlayer
+   get_fptr (TTreePlayer fptr) = fptr
+   cast_fptr_to_obj = TTreePlayer
+instance Existable TTreePlayer where
+  data Exist TTreePlayer = forall a. (FPtr a, ITTreePlayer a) => ETTreePlayer a
+
+data RawTArray
+newtype TArray = TArray (ForeignPtr RawTArray) deriving (Eq, Ord, Show)
+instance FPtr TArray where
+   type Raw TArray = RawTArray
+   get_fptr (TArray fptr) = fptr
+   cast_fptr_to_obj = TArray
+instance Existable TArray where
+  data Exist TArray = forall a. (FPtr a, ITArray a) => ETArray a
+
+data RawTArrayC
+newtype TArrayC = TArrayC (ForeignPtr RawTArrayC) deriving (Eq, Ord, Show)
+instance FPtr TArrayC where
+   type Raw TArrayC = RawTArrayC
+   get_fptr (TArrayC fptr) = fptr
+   cast_fptr_to_obj = TArrayC
+instance Existable TArrayC where
+  data Exist TArrayC = forall a. (FPtr a, ITArrayC a) => ETArrayC a
+
+data RawTArrayD
+newtype TArrayD = TArrayD (ForeignPtr RawTArrayD) deriving (Eq, Ord, Show)
+instance FPtr TArrayD where
+   type Raw TArrayD = RawTArrayD
+   get_fptr (TArrayD fptr) = fptr
+   cast_fptr_to_obj = TArrayD
+instance Existable TArrayD where
+  data Exist TArrayD = forall a. (FPtr a, ITArrayD a) => ETArrayD a
+
+data RawTArrayF
+newtype TArrayF = TArrayF (ForeignPtr RawTArrayF) deriving (Eq, Ord, Show)
+instance FPtr TArrayF where
+   type Raw TArrayF = RawTArrayF
+   get_fptr (TArrayF fptr) = fptr
+   cast_fptr_to_obj = TArrayF
+instance Existable TArrayF where
+  data Exist TArrayF = forall a. (FPtr a, ITArrayF a) => ETArrayF a
+
+data RawTArrayI
+newtype TArrayI = TArrayI (ForeignPtr RawTArrayI) deriving (Eq, Ord, Show)
+instance FPtr TArrayI where
+   type Raw TArrayI = RawTArrayI
+   get_fptr (TArrayI fptr) = fptr
+   cast_fptr_to_obj = TArrayI
+instance Existable TArrayI where
+  data Exist TArrayI = forall a. (FPtr a, ITArrayI a) => ETArrayI a
+
+data RawTArrayL
+newtype TArrayL = TArrayL (ForeignPtr RawTArrayL) deriving (Eq, Ord, Show)
+instance FPtr TArrayL where
+   type Raw TArrayL = RawTArrayL
+   get_fptr (TArrayL fptr) = fptr
+   cast_fptr_to_obj = TArrayL
+instance Existable TArrayL where
+  data Exist TArrayL = forall a. (FPtr a, ITArrayL a) => ETArrayL a
+
+data RawTArrayL64
+newtype TArrayL64 = TArrayL64 (ForeignPtr RawTArrayL64) deriving (Eq, Ord, Show)
+instance FPtr TArrayL64 where
+   type Raw TArrayL64 = RawTArrayL64
+   get_fptr (TArrayL64 fptr) = fptr
+   cast_fptr_to_obj = TArrayL64
+instance Existable TArrayL64 where
+  data Exist TArrayL64 = forall a. (FPtr a, ITArrayL64 a) => ETArrayL64 a
+
+data RawTArrayS
+newtype TArrayS = TArrayS (ForeignPtr RawTArrayS) deriving (Eq, Ord, Show)
+instance FPtr TArrayS where
+   type Raw TArrayS = RawTArrayS
+   get_fptr (TArrayS fptr) = fptr
+   cast_fptr_to_obj = TArrayS
+instance Existable TArrayS where
+  data Exist TArrayS = forall a. (FPtr a, ITArrayS a) => ETArrayS a
+
+data RawTH1
+newtype TH1 = TH1 (ForeignPtr RawTH1) deriving (Eq, Ord, Show)
+instance FPtr TH1 where
+   type Raw TH1 = RawTH1
+   get_fptr (TH1 fptr) = fptr
+   cast_fptr_to_obj = TH1
+instance Existable TH1 where
+  data Exist TH1 = forall a. (FPtr a, ITH1 a) => ETH1 a
+
+data RawTH2
+newtype TH2 = TH2 (ForeignPtr RawTH2) deriving (Eq, Ord, Show)
+instance FPtr TH2 where
+   type Raw TH2 = RawTH2
+   get_fptr (TH2 fptr) = fptr
+   cast_fptr_to_obj = TH2
+instance Existable TH2 where
+  data Exist TH2 = forall a. (FPtr a, ITH2 a) => ETH2 a
+
+data RawTH3
+newtype TH3 = TH3 (ForeignPtr RawTH3) deriving (Eq, Ord, Show)
+instance FPtr TH3 where
+   type Raw TH3 = RawTH3
+   get_fptr (TH3 fptr) = fptr
+   cast_fptr_to_obj = TH3
+instance Existable TH3 where
+  data Exist TH3 = forall a. (FPtr a, ITH3 a) => ETH3 a
+
+data RawTH1C
+newtype TH1C = TH1C (ForeignPtr RawTH1C) deriving (Eq, Ord, Show)
+instance FPtr TH1C where
+   type Raw TH1C = RawTH1C
+   get_fptr (TH1C fptr) = fptr
+   cast_fptr_to_obj = TH1C
+instance Existable TH1C where
+  data Exist TH1C = forall a. (FPtr a, ITH1C a) => ETH1C a
+
+data RawTH1D
+newtype TH1D = TH1D (ForeignPtr RawTH1D) deriving (Eq, Ord, Show)
+instance FPtr TH1D where
+   type Raw TH1D = RawTH1D
+   get_fptr (TH1D fptr) = fptr
+   cast_fptr_to_obj = TH1D
+instance Existable TH1D where
+  data Exist TH1D = forall a. (FPtr a, ITH1D a) => ETH1D a
+
+data RawTH1F
+newtype TH1F = TH1F (ForeignPtr RawTH1F) deriving (Eq, Ord, Show)
+instance FPtr TH1F where
+   type Raw TH1F = RawTH1F
+   get_fptr (TH1F fptr) = fptr
+   cast_fptr_to_obj = TH1F
+instance Existable TH1F where
+  data Exist TH1F = forall a. (FPtr a, ITH1F a) => ETH1F a
+
+data RawTH1I
+newtype TH1I = TH1I (ForeignPtr RawTH1I) deriving (Eq, Ord, Show)
+instance FPtr TH1I where
+   type Raw TH1I = RawTH1I
+   get_fptr (TH1I fptr) = fptr
+   cast_fptr_to_obj = TH1I
+instance Existable TH1I where
+  data Exist TH1I = forall a. (FPtr a, ITH1I a) => ETH1I a
+
+data RawTH1S
+newtype TH1S = TH1S (ForeignPtr RawTH1S) deriving (Eq, Ord, Show)
+instance FPtr TH1S where
+   type Raw TH1S = RawTH1S
+   get_fptr (TH1S fptr) = fptr
+   cast_fptr_to_obj = TH1S
+instance Existable TH1S where
+  data Exist TH1S = forall a. (FPtr a, ITH1S a) => ETH1S a
+
+data RawTH2C
+newtype TH2C = TH2C (ForeignPtr RawTH2C) deriving (Eq, Ord, Show)
+instance FPtr TH2C where
+   type Raw TH2C = RawTH2C
+   get_fptr (TH2C fptr) = fptr
+   cast_fptr_to_obj = TH2C
+instance Existable TH2C where
+  data Exist TH2C = forall a. (FPtr a, ITH2C a) => ETH2C a
+
+data RawTH2D
+newtype TH2D = TH2D (ForeignPtr RawTH2D) deriving (Eq, Ord, Show)
+instance FPtr TH2D where
+   type Raw TH2D = RawTH2D
+   get_fptr (TH2D fptr) = fptr
+   cast_fptr_to_obj = TH2D
+instance Existable TH2D where
+  data Exist TH2D = forall a. (FPtr a, ITH2D a) => ETH2D a
+
+data RawTH2F
+newtype TH2F = TH2F (ForeignPtr RawTH2F) deriving (Eq, Ord, Show)
+instance FPtr TH2F where
+   type Raw TH2F = RawTH2F
+   get_fptr (TH2F fptr) = fptr
+   cast_fptr_to_obj = TH2F
+instance Existable TH2F where
+  data Exist TH2F = forall a. (FPtr a, ITH2F a) => ETH2F a
+
+data RawTH2I
+newtype TH2I = TH2I (ForeignPtr RawTH2I) deriving (Eq, Ord, Show)
+instance FPtr TH2I where
+   type Raw TH2I = RawTH2I
+   get_fptr (TH2I fptr) = fptr
+   cast_fptr_to_obj = TH2I
+instance Existable TH2I where
+  data Exist TH2I = forall a. (FPtr a, ITH2I a) => ETH2I a
+
+data RawTH2Poly
+newtype TH2Poly = TH2Poly (ForeignPtr RawTH2Poly) deriving (Eq, Ord, Show)
+instance FPtr TH2Poly where
+   type Raw TH2Poly = RawTH2Poly
+   get_fptr (TH2Poly fptr) = fptr
+   cast_fptr_to_obj = TH2Poly
+instance Existable TH2Poly where
+  data Exist TH2Poly = forall a. (FPtr a, ITH2Poly a) => ETH2Poly a
+
+data RawTH2S
+newtype TH2S = TH2S (ForeignPtr RawTH2S) deriving (Eq, Ord, Show)
+instance FPtr TH2S where
+   type Raw TH2S = RawTH2S
+   get_fptr (TH2S fptr) = fptr
+   cast_fptr_to_obj = TH2S
+instance Existable TH2S where
+  data Exist TH2S = forall a. (FPtr a, ITH2S a) => ETH2S a
+
+data RawTH3C
+newtype TH3C = TH3C (ForeignPtr RawTH3C) deriving (Eq, Ord, Show)
+instance FPtr TH3C where
+   type Raw TH3C = RawTH3C
+   get_fptr (TH3C fptr) = fptr
+   cast_fptr_to_obj = TH3C
+instance Existable TH3C where
+  data Exist TH3C = forall a. (FPtr a, ITH3C a) => ETH3C a
+
+data RawTH3D
+newtype TH3D = TH3D (ForeignPtr RawTH3D) deriving (Eq, Ord, Show)
+instance FPtr TH3D where
+   type Raw TH3D = RawTH3D
+   get_fptr (TH3D fptr) = fptr
+   cast_fptr_to_obj = TH3D
+instance Existable TH3D where
+  data Exist TH3D = forall a. (FPtr a, ITH3D a) => ETH3D a
+
+data RawTH3F
+newtype TH3F = TH3F (ForeignPtr RawTH3F) deriving (Eq, Ord, Show)
+instance FPtr TH3F where
+   type Raw TH3F = RawTH3F
+   get_fptr (TH3F fptr) = fptr
+   cast_fptr_to_obj = TH3F
+instance Existable TH3F where
+  data Exist TH3F = forall a. (FPtr a, ITH3F a) => ETH3F a
+
+data RawTH3I
+newtype TH3I = TH3I (ForeignPtr RawTH3I) deriving (Eq, Ord, Show)
+instance FPtr TH3I where
+   type Raw TH3I = RawTH3I
+   get_fptr (TH3I fptr) = fptr
+   cast_fptr_to_obj = TH3I
+instance Existable TH3I where
+  data Exist TH3I = forall a. (FPtr a, ITH3I a) => ETH3I a
+
+data RawTH3S
+newtype TH3S = TH3S (ForeignPtr RawTH3S) deriving (Eq, Ord, Show)
+instance FPtr TH3S where
+   type Raw TH3S = RawTH3S
+   get_fptr (TH3S fptr) = fptr
+   cast_fptr_to_obj = TH3S
+instance Existable TH3S where
+  data Exist TH3S = forall a. (FPtr a, ITH3S a) => ETH3S a
+
+data RawTQObject
+newtype TQObject = TQObject (ForeignPtr RawTQObject) deriving (Eq, Ord, Show)
+instance FPtr TQObject where
+   type Raw TQObject = RawTQObject
+   get_fptr (TQObject fptr) = fptr
+   cast_fptr_to_obj = TQObject
+instance Existable TQObject where
+  data Exist TQObject = forall a. (FPtr a, ITQObject a) => ETQObject a
+
+data RawTVirtualPad
+newtype TVirtualPad = TVirtualPad (ForeignPtr RawTVirtualPad) deriving (Eq, Ord, Show)
+instance FPtr TVirtualPad where
+   type Raw TVirtualPad = RawTVirtualPad
+   get_fptr (TVirtualPad fptr) = fptr
+   cast_fptr_to_obj = TVirtualPad
+instance Existable TVirtualPad where
+  data Exist TVirtualPad = forall a. (FPtr a, ITVirtualPad a) => ETVirtualPad a
+
+data RawTPad
+newtype TPad = TPad (ForeignPtr RawTPad) deriving (Eq, Ord, Show)
+instance FPtr TPad where
+   type Raw TPad = RawTPad
+   get_fptr (TPad fptr) = fptr
+   cast_fptr_to_obj = TPad
+instance Existable TPad where
+  data Exist TPad = forall a. (FPtr a, ITPad a) => ETPad a
+
+data RawTButton
+newtype TButton = TButton (ForeignPtr RawTButton) deriving (Eq, Ord, Show)
+instance FPtr TButton where
+   type Raw TButton = RawTButton
+   get_fptr (TButton fptr) = fptr
+   cast_fptr_to_obj = TButton
+instance Existable TButton where
+  data Exist TButton = forall a. (FPtr a, ITButton a) => ETButton a
+
+data RawTGroupButton
+newtype TGroupButton = TGroupButton (ForeignPtr RawTGroupButton) deriving (Eq, Ord, Show)
+instance FPtr TGroupButton where
+   type Raw TGroupButton = RawTGroupButton
+   get_fptr (TGroupButton fptr) = fptr
+   cast_fptr_to_obj = TGroupButton
+instance Existable TGroupButton where
+  data Exist TGroupButton = forall a. (FPtr a, ITGroupButton a) => ETGroupButton a
+
+data RawTCanvas
+newtype TCanvas = TCanvas (ForeignPtr RawTCanvas) deriving (Eq, Ord, Show)
+instance FPtr TCanvas where
+   type Raw TCanvas = RawTCanvas
+   get_fptr (TCanvas fptr) = fptr
+   cast_fptr_to_obj = TCanvas
+instance Existable TCanvas where
+  data Exist TCanvas = forall a. (FPtr a, ITCanvas a) => ETCanvas a
+
+data RawTDialogCanvas
+newtype TDialogCanvas = TDialogCanvas (ForeignPtr RawTDialogCanvas) deriving (Eq, Ord, Show)
+instance FPtr TDialogCanvas where
+   type Raw TDialogCanvas = RawTDialogCanvas
+   get_fptr (TDialogCanvas fptr) = fptr
+   cast_fptr_to_obj = TDialogCanvas
+instance Existable TDialogCanvas where
+  data Exist TDialogCanvas = forall a. (FPtr a, ITDialogCanvas a) => ETDialogCanvas a
+
+data RawTInspectCanvas
+newtype TInspectCanvas = TInspectCanvas (ForeignPtr RawTInspectCanvas) deriving (Eq, Ord, Show)
+instance FPtr TInspectCanvas where
+   type Raw TInspectCanvas = RawTInspectCanvas
+   get_fptr (TInspectCanvas fptr) = fptr
+   cast_fptr_to_obj = TInspectCanvas
+instance Existable TInspectCanvas where
+  data Exist TInspectCanvas = forall a. (FPtr a, ITInspectCanvas a) => ETInspectCanvas a
+
+data RawTEvePad
+newtype TEvePad = TEvePad (ForeignPtr RawTEvePad) deriving (Eq, Ord, Show)
+instance FPtr TEvePad where
+   type Raw TEvePad = RawTEvePad
+   get_fptr (TEvePad fptr) = fptr
+   cast_fptr_to_obj = TEvePad
+instance Existable TEvePad where
+  data Exist TEvePad = forall a. (FPtr a, ITEvePad a) => ETEvePad a
+
+data RawTSlider
+newtype TSlider = TSlider (ForeignPtr RawTSlider) deriving (Eq, Ord, Show)
+instance FPtr TSlider where
+   type Raw TSlider = RawTSlider
+   get_fptr (TSlider fptr) = fptr
+   cast_fptr_to_obj = TSlider
+instance Existable TSlider where
+  data Exist TSlider = forall a. (FPtr a, ITSlider a) => ETSlider a
+
+data RawTApplication
+newtype TApplication = TApplication (ForeignPtr RawTApplication) deriving (Eq, Ord, Show)
+instance FPtr TApplication where
+   type Raw TApplication = RawTApplication
+   get_fptr (TApplication fptr) = fptr
+   cast_fptr_to_obj = TApplication
+instance Existable TApplication where
+  data Exist TApplication = forall a. (FPtr a, ITApplication a) => ETApplication a
+
+data RawTRint
+newtype TRint = TRint (ForeignPtr RawTRint) deriving (Eq, Ord, Show)
+instance FPtr TRint where
+   type Raw TRint = RawTRint
+   get_fptr (TRint fptr) = fptr
+   cast_fptr_to_obj = TRint
+instance Existable TRint where
+  data Exist TRint = forall a. (FPtr a, ITRint a) => ETRint a
+
+data RawTRandom
+newtype TRandom = TRandom (ForeignPtr RawTRandom) deriving (Eq, Ord, Show)
+instance FPtr TRandom where
+   type Raw TRandom = RawTRandom
+   get_fptr (TRandom fptr) = fptr
+   cast_fptr_to_obj = TRandom
+instance Existable TRandom where
+  data Exist TRandom = forall a. (FPtr a, ITRandom a) => ETRandom a
+
+class IDeletable a where
+    delete :: a -> IO () 
+
+class ITObject a where
+    getName :: a -> IO String 
+    draw :: a -> String -> IO () 
+    findObject :: a -> String -> IO (Exist TObject) 
+    saveAs :: a -> String -> String -> IO () 
+    write :: a -> String -> Int -> Int -> IO Int 
+
+class ITNamed a where
+    setTitle :: a -> String -> IO () 
+
+class ITFormula a where
+    getParameter :: a -> Int -> IO Double 
+    setParameter :: a -> Int -> Double -> IO () 
+
+class ITAtt3D a where
+
+class ITAttAxis a where
+    setLabelColor :: a -> Int -> IO () 
+    setLabelSize :: a -> Double -> IO () 
+    setTickLength :: a -> Double -> IO () 
+    setTitleOffset :: a -> Double -> IO () 
+    setNdivisions :: a -> Int -> Int -> IO () 
+
+class ITAttBBox a where
+
+class ITAttCanvas a where
+
+class ITAttFill a where
+    setFillColor :: a -> Int -> IO () 
+    setFillStyle :: a -> Int -> IO () 
+
+class ITAttImage a where
+
+class ITAttLine a where
+    setLineColor :: a -> Int -> IO () 
+
+class ITAttMarker a where
+
+class ITAttPad a where
+
+class ITAttParticle a where
+
+class ITAttText a where
+    setTextColor :: a -> Int -> IO () 
+    setTextAlign :: a -> Int -> IO () 
+    setTextSize :: a -> Double -> IO () 
+
+class ITHStack a where
+
+class ITF1 a where
+
+class ITGraph a where
+
+class ITGraphAsymmErrors a where
+
+class ITCutG a where
+
+class ITGraphBentErrors a where
+
+class ITGraphErrors a where
+
+class ITGraphPolar a where
+
+class ITGraphQQ a where
+
+class ITEllipse a where
+
+class ITArc a where
+
+class ITCrown a where
+
+class ITLine a where
+
+class ITArrow a where
+
+class ITGaxis a where
+
+class ITShape a where
+
+class ITBRIK a where
+
+class ITTUBE a where
+
+class ITPCON a where
+
+class ITSPHE a where
+
+class ITXTRU a where
+
+class ITBox a where
+
+class ITPave a where
+
+class ITPaveText a where
+
+class ITDiamond a where
+
+class ITPaveStats a where
+
+class ITPavesText a where
+
+class ITLegend a where
+
+class ITPaveLabel a where
+
+class ITPaveClass a where
+
+class ITWbox a where
+    setBorderMode :: a -> Int -> IO () 
+
+class ITFrame a where
+
+class ITSliderBox a where
+
+class ITTree a where
+
+class ITChain a where
+
+class ITNtuple a where
+
+class ITNtupleD a where
+
+class ITTreeSQL a where
+
+class ITPolyLine a where
+
+class ITCurlyLine a where
+
+class ITCurlyArc a where
+
+class ITEfficiency a where
+
+class ITAxis a where
+
+class ITLatex a where
+
+class ITText a where
+
+class ITDirectory a where
+    close :: a -> String -> IO () 
+
+class ITDirectoryFile a where
+
+class ITFile a where
+
+class ITBranch a where
+
+class ITVirtualTreePlayer a where
+
+class ITTreePlayer a where
+
+class ITArray a where
+
+class ITArrayC a where
+
+class ITArrayD a where
+
+class ITArrayF a where
+
+class ITArrayI a where
+
+class ITArrayL a where
+
+class ITArrayL64 a where
+
+class ITArrayS a where
+
+class ITH1 a where
+    add :: (ITH1 c0, FPtr c0) => a -> c0 -> Double -> IO () 
+    addBinContent :: a -> Int -> Double -> IO () 
+    chi2Test :: (ITH1 c0, FPtr c0) => a -> c0 -> String -> [Double] -> IO Double 
+    computeIntegral :: a -> IO Double 
+    directoryAutoAdd :: (ITDirectory c0, FPtr c0) => a -> c0 -> IO () 
+    distancetoPrimitive :: a -> Int -> Int -> IO Int 
+    divide :: (ITH2 c1, FPtr c1, ITH1 c0, FPtr c0) => a -> c0 -> c1 -> Double -> Double -> String -> IO () 
+    drawCopy :: a -> String -> IO a 
+    drawNormalized :: a -> String -> Double -> IO (Exist TH1) 
+    drawPanel :: a -> IO () 
+    bufferEmpty :: a -> Int -> IO Int 
+    eval :: (ITF1 c0, FPtr c0) => a -> c0 -> String -> IO () 
+    executeEvent :: a -> Int -> Int -> Int -> IO () 
+    fFT :: (ITH1 c0, FPtr c0) => a -> c0 -> String -> IO (Exist TH1) 
+    fill1 :: a -> Double -> IO Int 
+    fillN :: a -> Int -> [Double] -> [Double] -> Int -> IO () 
+    fillRandom :: (ITH1 c0, FPtr c0) => a -> c0 -> Int -> IO () 
+    findBin :: a -> Double -> Double -> Double -> IO Int 
+    findFixBin :: a -> Double -> Double -> Double -> IO Int 
+    findFirstBinAbove :: a -> Double -> Int -> IO Int 
+    findLastBinAbove :: a -> Double -> Int -> IO Int 
+    fitPanel :: a -> IO () 
+    getNdivisions :: a -> String -> IO Int 
+    getAxisColor :: a -> String -> IO Int 
+    getLabelColor :: a -> String -> IO Int 
+    getLabelFont :: a -> String -> IO Int 
+    getLabelOffset :: a -> String -> IO Double 
+    getLabelSize :: a -> String -> IO Double 
+    getTitleFont :: a -> String -> IO Int 
+    getTitleOffset :: a -> String -> IO Double 
+    getTitleSize :: a -> String -> IO Double 
+    getTickLength :: a -> String -> IO Double 
+    getBarOffset :: a -> IO Double 
+    getBarWidth :: a -> IO Double 
+    getContour :: a -> [Double] -> IO Int 
+    getContourLevel :: a -> Int -> IO Double 
+    getContourLevelPad :: a -> Int -> IO Double 
+    getBin :: a -> Int -> Int -> Int -> IO Int 
+    getBinCenter :: a -> Int -> IO Double 
+    getBinContent1 :: a -> Int -> IO Double 
+    getBinContent2 :: a -> Int -> Int -> IO Double 
+    getBinContent3 :: a -> Int -> Int -> Int -> IO Double 
+    getBinError1 :: a -> Int -> IO Double 
+    getBinError2 :: a -> Int -> Int -> IO Double 
+    getBinError3 :: a -> Int -> Int -> Int -> IO Double 
+    getBinLowEdge :: a -> Int -> IO Double 
+    getBinWidth :: a -> Int -> IO Double 
+    getCellContent :: a -> Int -> Int -> IO Double 
+    getCellError :: a -> Int -> Int -> IO Double 
+
+class ITH2 a where
+    fill2 :: a -> Double -> Double -> IO Int 
+
+class ITH3 a where
+
+class ITH1C a where
+
+class ITH1D a where
+
+class ITH1F a where
+
+class ITH1I a where
+
+class ITH1S a where
+
+class ITH2C a where
+
+class ITH2D a where
+
+class ITH2F a where
+
+class ITH2I a where
+
+class ITH2Poly a where
+
+class ITH2S a where
+
+class ITH3C a where
+
+class ITH3D a where
+
+class ITH3F a where
+
+class ITH3I a where
+
+class ITH3S a where
+
+class ITQObject a where
+
+class ITVirtualPad a where
+    getFrame :: a -> IO (Exist TFrame) 
+    range :: a -> Double -> Double -> Double -> Double -> IO () 
+
+class ITPad a where
+
+class ITButton a where
+
+class ITGroupButton a where
+
+class ITCanvas a where
+
+class ITDialogCanvas a where
+
+class ITInspectCanvas a where
+
+class ITEvePad a where
+
+class ITSlider a where
+
+class ITApplication a where
+    run :: a -> Int -> IO () 
+
+class ITRint a where
+
+class ITRandom a where
+    gaus :: a -> Double -> Double -> IO Double 
+    uniform :: a -> Double -> Double -> IO Double 
diff --git a/src/HROOT/Function.hsc b/src/HROOT/Function.hsc
deleted file mode 100644
--- a/src/HROOT/Function.hsc
+++ /dev/null
@@ -1,3867 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface #-}
-
-module HROOT.Function where
-
-import Foreign.C            
-import Foreign.Ptr
-
-import HROOT.Type
-
-#include "HROOT.h"
-
-
-
-foreign import ccall "HROOT.h TObject_delete" c_tobject_delete 
-  :: (Ptr RawTObject) -> IO ()
-foreign import ccall "HROOT.h TObject_newTObject" c_tobject_newtobject 
-  :: IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TObject_GetName" c_tobject_getname 
-  :: (Ptr RawTObject) -> IO CString
-foreign import ccall "HROOT.h TObject_Draw" c_tobject_draw 
-  :: (Ptr RawTObject) -> CString -> IO ()
-foreign import ccall "HROOT.h TObject_FindObject" c_tobject_findobject 
-  :: (Ptr RawTObject) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TObject_SaveAs" c_tobject_saveas 
-  :: (Ptr RawTObject) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TObject_Write" c_tobject_write 
-  :: (Ptr RawTObject) -> CString -> CInt -> CInt -> IO CInt
-
-foreign import ccall "HROOT.h TNamed_GetName" c_tnamed_getname 
-  :: (Ptr RawTNamed) -> IO CString
-foreign import ccall "HROOT.h TNamed_Draw" c_tnamed_draw 
-  :: (Ptr RawTNamed) -> CString -> IO ()
-foreign import ccall "HROOT.h TNamed_FindObject" c_tnamed_findobject 
-  :: (Ptr RawTNamed) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TNamed_SaveAs" c_tnamed_saveas 
-  :: (Ptr RawTNamed) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TNamed_Write" c_tnamed_write 
-  :: (Ptr RawTNamed) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TNamed_delete" c_tnamed_delete 
-  :: (Ptr RawTNamed) -> IO ()
-foreign import ccall "HROOT.h TNamed_newTNamed" c_tnamed_newtnamed 
-  :: CString -> CString -> IO (Ptr RawTNamed)
-foreign import ccall "HROOT.h TNamed_SetTitle" c_tnamed_settitle 
-  :: (Ptr RawTNamed) -> CString -> IO ()
-
-foreign import ccall "HROOT.h TFormula_SetTitle" c_tformula_settitle 
-  :: (Ptr RawTFormula) -> CString -> IO ()
-foreign import ccall "HROOT.h TFormula_GetName" c_tformula_getname 
-  :: (Ptr RawTFormula) -> IO CString
-foreign import ccall "HROOT.h TFormula_Draw" c_tformula_draw 
-  :: (Ptr RawTFormula) -> CString -> IO ()
-foreign import ccall "HROOT.h TFormula_FindObject" c_tformula_findobject 
-  :: (Ptr RawTFormula) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TFormula_SaveAs" c_tformula_saveas 
-  :: (Ptr RawTFormula) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TFormula_Write" c_tformula_write 
-  :: (Ptr RawTFormula) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TFormula_delete" c_tformula_delete 
-  :: (Ptr RawTFormula) -> IO ()
-foreign import ccall "HROOT.h TFormula_newTFormula" c_tformula_newtformula 
-  :: CString -> CString -> IO (Ptr RawTFormula)
-foreign import ccall "HROOT.h TFormula_GetParameter" c_tformula_getparameter 
-  :: (Ptr RawTFormula) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TFormula_SetParameter" c_tformula_setparameter 
-  :: (Ptr RawTFormula) -> CInt -> CDouble -> IO ()
-
-foreign import ccall "HROOT.h TAtt3D_delete" c_tatt3d_delete 
-  :: (Ptr RawTAtt3D) -> IO ()
-
-foreign import ccall "HROOT.h TAttAxis_delete" c_tattaxis_delete 
-  :: (Ptr RawTAttAxis) -> IO ()
-foreign import ccall "HROOT.h TAttAxis_newTAttAxis" c_tattaxis_newtattaxis 
-  :: IO (Ptr RawTAttAxis)
-foreign import ccall "HROOT.h TAttAxis_SetLabelColor" c_tattaxis_setlabelcolor 
-  :: (Ptr RawTAttAxis) -> CInt -> IO ()
-foreign import ccall "HROOT.h TAttAxis_SetLabelSize" c_tattaxis_setlabelsize 
-  :: (Ptr RawTAttAxis) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TAttAxis_SetTickLength" c_tattaxis_setticklength 
-  :: (Ptr RawTAttAxis) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TAttAxis_SetTitleOffset" c_tattaxis_settitleoffset 
-  :: (Ptr RawTAttAxis) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TAttAxis_SetNdivisions" c_tattaxis_setndivisions 
-  :: (Ptr RawTAttAxis) -> CInt -> CInt -> IO ()
-
-foreign import ccall "HROOT.h TAttBBox_delete" c_tattbbox_delete 
-  :: (Ptr RawTAttBBox) -> IO ()
-
-foreign import ccall "HROOT.h TAttCanvas_delete" c_tattcanvas_delete 
-  :: (Ptr RawTAttCanvas) -> IO ()
-foreign import ccall "HROOT.h TAttCanvas_newTAttCanvas" c_tattcanvas_newtattcanvas 
-  :: IO (Ptr RawTAttCanvas)
-
-foreign import ccall "HROOT.h TAttFill_delete" c_tattfill_delete 
-  :: (Ptr RawTAttFill) -> IO ()
-foreign import ccall "HROOT.h TAttFill_newTAttFill" c_tattfill_newtattfill 
-  :: CInt -> CInt -> IO (Ptr RawTAttFill)
-foreign import ccall "HROOT.h TAttFill_SetFillColor" c_tattfill_setfillcolor 
-  :: (Ptr RawTAttFill) -> CInt -> IO ()
-foreign import ccall "HROOT.h TAttFill_SetFillStyle" c_tattfill_setfillstyle 
-  :: (Ptr RawTAttFill) -> CInt -> IO ()
-
-foreign import ccall "HROOT.h TAttImage_delete" c_tattimage_delete 
-  :: (Ptr RawTAttImage) -> IO ()
-
-foreign import ccall "HROOT.h TAttLine_delete" c_tattline_delete 
-  :: (Ptr RawTAttLine) -> IO ()
-foreign import ccall "HROOT.h TAttLine_newTAttLine" c_tattline_newtattline 
-  :: CInt -> CInt -> CInt -> IO (Ptr RawTAttLine)
-foreign import ccall "HROOT.h TAttLine_SetLineColor" c_tattline_setlinecolor 
-  :: (Ptr RawTAttLine) -> CInt -> IO ()
-
-foreign import ccall "HROOT.h TAttMarker_delete" c_tattmarker_delete 
-  :: (Ptr RawTAttMarker) -> IO ()
-foreign import ccall "HROOT.h TAttMarker_newTAttMarker" c_tattmarker_newtattmarker 
-  :: CInt -> CInt -> CInt -> IO (Ptr RawTAttMarker)
-
-foreign import ccall "HROOT.h TAttPad_delete" c_tattpad_delete 
-  :: (Ptr RawTAttPad) -> IO ()
-foreign import ccall "HROOT.h TAttPad_newTAttPad" c_tattpad_newtattpad 
-  :: IO (Ptr RawTAttPad)
-
-foreign import ccall "HROOT.h TAttParticle_SetTitle" c_tattparticle_settitle 
-  :: (Ptr RawTAttParticle) -> CString -> IO ()
-foreign import ccall "HROOT.h TAttParticle_GetName" c_tattparticle_getname 
-  :: (Ptr RawTAttParticle) -> IO CString
-foreign import ccall "HROOT.h TAttParticle_Draw" c_tattparticle_draw 
-  :: (Ptr RawTAttParticle) -> CString -> IO ()
-foreign import ccall "HROOT.h TAttParticle_FindObject" c_tattparticle_findobject 
-  :: (Ptr RawTAttParticle) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TAttParticle_SaveAs" c_tattparticle_saveas 
-  :: (Ptr RawTAttParticle) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TAttParticle_Write" c_tattparticle_write 
-  :: (Ptr RawTAttParticle) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TAttParticle_delete" c_tattparticle_delete 
-  :: (Ptr RawTAttParticle) -> IO ()
-
-foreign import ccall "HROOT.h TAttText_delete" c_tatttext_delete 
-  :: (Ptr RawTAttText) -> IO ()
-foreign import ccall "HROOT.h TAttText_newTAttText" c_tatttext_newtatttext 
-  :: CInt -> CDouble -> CInt -> CInt -> CDouble -> IO (Ptr RawTAttText)
-foreign import ccall "HROOT.h TAttText_SetTextColor" c_tatttext_settextcolor 
-  :: (Ptr RawTAttText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TAttText_SetTextAlign" c_tatttext_settextalign 
-  :: (Ptr RawTAttText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TAttText_SetTextSize" c_tatttext_settextsize 
-  :: (Ptr RawTAttText) -> CDouble -> IO ()
-
-foreign import ccall "HROOT.h THStack_SetTitle" c_thstack_settitle 
-  :: (Ptr RawTHStack) -> CString -> IO ()
-foreign import ccall "HROOT.h THStack_GetName" c_thstack_getname 
-  :: (Ptr RawTHStack) -> IO CString
-foreign import ccall "HROOT.h THStack_Draw" c_thstack_draw 
-  :: (Ptr RawTHStack) -> CString -> IO ()
-foreign import ccall "HROOT.h THStack_FindObject" c_thstack_findobject 
-  :: (Ptr RawTHStack) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h THStack_SaveAs" c_thstack_saveas 
-  :: (Ptr RawTHStack) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h THStack_Write" c_thstack_write 
-  :: (Ptr RawTHStack) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h THStack_delete" c_thstack_delete 
-  :: (Ptr RawTHStack) -> IO ()
-foreign import ccall "HROOT.h THStack_newTHStack" c_thstack_newthstack 
-  :: CString -> CString -> IO (Ptr RawTHStack)
-
-foreign import ccall "HROOT.h TF1_GetParameter" c_tf1_getparameter 
-  :: (Ptr RawTF1) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TF1_SetParameter" c_tf1_setparameter 
-  :: (Ptr RawTF1) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TF1_SetLineColor" c_tf1_setlinecolor 
-  :: (Ptr RawTF1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TF1_SetFillColor" c_tf1_setfillcolor 
-  :: (Ptr RawTF1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TF1_SetFillStyle" c_tf1_setfillstyle 
-  :: (Ptr RawTF1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TF1_SetTitle" c_tf1_settitle 
-  :: (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TF1_GetName" c_tf1_getname 
-  :: (Ptr RawTF1) -> IO CString
-foreign import ccall "HROOT.h TF1_Draw" c_tf1_draw 
-  :: (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TF1_FindObject" c_tf1_findobject 
-  :: (Ptr RawTF1) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TF1_SaveAs" c_tf1_saveas 
-  :: (Ptr RawTF1) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TF1_Write" c_tf1_write 
-  :: (Ptr RawTF1) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TF1_delete" c_tf1_delete 
-  :: (Ptr RawTF1) -> IO ()
-foreign import ccall "HROOT.h TF1_newTF1" c_tf1_newtf1 
-  :: CString -> CString -> CDouble -> CDouble -> IO (Ptr RawTF1)
-
-foreign import ccall "HROOT.h TGraph_SetTitle" c_tgraph_settitle 
-  :: (Ptr RawTGraph) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraph_SetLineColor" c_tgraph_setlinecolor 
-  :: (Ptr RawTGraph) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraph_SetFillColor" c_tgraph_setfillcolor 
-  :: (Ptr RawTGraph) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraph_SetFillStyle" c_tgraph_setfillstyle 
-  :: (Ptr RawTGraph) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraph_GetName" c_tgraph_getname 
-  :: (Ptr RawTGraph) -> IO CString
-foreign import ccall "HROOT.h TGraph_Draw" c_tgraph_draw 
-  :: (Ptr RawTGraph) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraph_FindObject" c_tgraph_findobject 
-  :: (Ptr RawTGraph) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TGraph_SaveAs" c_tgraph_saveas 
-  :: (Ptr RawTGraph) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TGraph_Write" c_tgraph_write 
-  :: (Ptr RawTGraph) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TGraph_delete" c_tgraph_delete 
-  :: (Ptr RawTGraph) -> IO ()
-foreign import ccall "HROOT.h TGraph_newTGraph" c_tgraph_newtgraph 
-  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraph)
-
-foreign import ccall "HROOT.h TGraphAsymmErrors_SetTitle" c_tgraphasymmerrors_settitle 
-  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphAsymmErrors_SetLineColor" c_tgraphasymmerrors_setlinecolor 
-  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphAsymmErrors_SetFillColor" c_tgraphasymmerrors_setfillcolor 
-  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphAsymmErrors_SetFillStyle" c_tgraphasymmerrors_setfillstyle 
-  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphAsymmErrors_GetName" c_tgraphasymmerrors_getname 
-  :: (Ptr RawTGraphAsymmErrors) -> IO CString
-foreign import ccall "HROOT.h TGraphAsymmErrors_Draw" c_tgraphasymmerrors_draw 
-  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphAsymmErrors_FindObject" c_tgraphasymmerrors_findobject 
-  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TGraphAsymmErrors_SaveAs" c_tgraphasymmerrors_saveas 
-  :: (Ptr RawTGraphAsymmErrors) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphAsymmErrors_Write" c_tgraphasymmerrors_write 
-  :: (Ptr RawTGraphAsymmErrors) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TGraphAsymmErrors_delete" c_tgraphasymmerrors_delete 
-  :: (Ptr RawTGraphAsymmErrors) -> IO ()
-foreign import ccall "HROOT.h TGraphAsymmErrors_newTGraphAsymmErrors" c_tgraphasymmerrors_newtgraphasymmerrors 
-  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphAsymmErrors)
-
-foreign import ccall "HROOT.h TCutG_SetTitle" c_tcutg_settitle 
-  :: (Ptr RawTCutG) -> CString -> IO ()
-foreign import ccall "HROOT.h TCutG_SetLineColor" c_tcutg_setlinecolor 
-  :: (Ptr RawTCutG) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCutG_SetFillColor" c_tcutg_setfillcolor 
-  :: (Ptr RawTCutG) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCutG_SetFillStyle" c_tcutg_setfillstyle 
-  :: (Ptr RawTCutG) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCutG_GetName" c_tcutg_getname 
-  :: (Ptr RawTCutG) -> IO CString
-foreign import ccall "HROOT.h TCutG_Draw" c_tcutg_draw 
-  :: (Ptr RawTCutG) -> CString -> IO ()
-foreign import ccall "HROOT.h TCutG_FindObject" c_tcutg_findobject 
-  :: (Ptr RawTCutG) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TCutG_SaveAs" c_tcutg_saveas 
-  :: (Ptr RawTCutG) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TCutG_Write" c_tcutg_write 
-  :: (Ptr RawTCutG) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TCutG_delete" c_tcutg_delete 
-  :: (Ptr RawTCutG) -> IO ()
-foreign import ccall "HROOT.h TCutG_newTCutG" c_tcutg_newtcutg 
-  :: CString -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTCutG)
-
-foreign import ccall "HROOT.h TGraphBentErrors_SetTitle" c_tgraphbenterrors_settitle 
-  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphBentErrors_SetLineColor" c_tgraphbenterrors_setlinecolor 
-  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphBentErrors_SetFillColor" c_tgraphbenterrors_setfillcolor 
-  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphBentErrors_SetFillStyle" c_tgraphbenterrors_setfillstyle 
-  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphBentErrors_GetName" c_tgraphbenterrors_getname 
-  :: (Ptr RawTGraphBentErrors) -> IO CString
-foreign import ccall "HROOT.h TGraphBentErrors_Draw" c_tgraphbenterrors_draw 
-  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphBentErrors_FindObject" c_tgraphbenterrors_findobject 
-  :: (Ptr RawTGraphBentErrors) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TGraphBentErrors_SaveAs" c_tgraphbenterrors_saveas 
-  :: (Ptr RawTGraphBentErrors) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphBentErrors_Write" c_tgraphbenterrors_write 
-  :: (Ptr RawTGraphBentErrors) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TGraphBentErrors_delete" c_tgraphbenterrors_delete 
-  :: (Ptr RawTGraphBentErrors) -> IO ()
-foreign import ccall "HROOT.h TGraphBentErrors_newTGraphBentErrors" c_tgraphbenterrors_newtgraphbenterrors 
-  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphBentErrors)
-
-foreign import ccall "HROOT.h TGraphErrors_SetTitle" c_tgrapherrors_settitle 
-  :: (Ptr RawTGraphErrors) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphErrors_SetLineColor" c_tgrapherrors_setlinecolor 
-  :: (Ptr RawTGraphErrors) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphErrors_SetFillColor" c_tgrapherrors_setfillcolor 
-  :: (Ptr RawTGraphErrors) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphErrors_SetFillStyle" c_tgrapherrors_setfillstyle 
-  :: (Ptr RawTGraphErrors) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphErrors_GetName" c_tgrapherrors_getname 
-  :: (Ptr RawTGraphErrors) -> IO CString
-foreign import ccall "HROOT.h TGraphErrors_Draw" c_tgrapherrors_draw 
-  :: (Ptr RawTGraphErrors) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphErrors_FindObject" c_tgrapherrors_findobject 
-  :: (Ptr RawTGraphErrors) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TGraphErrors_SaveAs" c_tgrapherrors_saveas 
-  :: (Ptr RawTGraphErrors) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphErrors_Write" c_tgrapherrors_write 
-  :: (Ptr RawTGraphErrors) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TGraphErrors_delete" c_tgrapherrors_delete 
-  :: (Ptr RawTGraphErrors) -> IO ()
-foreign import ccall "HROOT.h TGraphErrors_newTGraphErrors" c_tgrapherrors_newtgrapherrors 
-  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphErrors)
-
-foreign import ccall "HROOT.h TGraphPolar_SetTitle" c_tgraphpolar_settitle 
-  :: (Ptr RawTGraphPolar) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphPolar_SetLineColor" c_tgraphpolar_setlinecolor 
-  :: (Ptr RawTGraphPolar) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphPolar_SetFillColor" c_tgraphpolar_setfillcolor 
-  :: (Ptr RawTGraphPolar) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphPolar_SetFillStyle" c_tgraphpolar_setfillstyle 
-  :: (Ptr RawTGraphPolar) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphPolar_GetName" c_tgraphpolar_getname 
-  :: (Ptr RawTGraphPolar) -> IO CString
-foreign import ccall "HROOT.h TGraphPolar_Draw" c_tgraphpolar_draw 
-  :: (Ptr RawTGraphPolar) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphPolar_FindObject" c_tgraphpolar_findobject 
-  :: (Ptr RawTGraphPolar) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TGraphPolar_SaveAs" c_tgraphpolar_saveas 
-  :: (Ptr RawTGraphPolar) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphPolar_Write" c_tgraphpolar_write 
-  :: (Ptr RawTGraphPolar) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TGraphPolar_delete" c_tgraphpolar_delete 
-  :: (Ptr RawTGraphPolar) -> IO ()
-foreign import ccall "HROOT.h TGraphPolar_newTGraphPolar" c_tgraphpolar_newtgraphpolar 
-  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphPolar)
-
-foreign import ccall "HROOT.h TGraphQQ_SetTitle" c_tgraphqq_settitle 
-  :: (Ptr RawTGraphQQ) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphQQ_SetLineColor" c_tgraphqq_setlinecolor 
-  :: (Ptr RawTGraphQQ) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphQQ_SetFillColor" c_tgraphqq_setfillcolor 
-  :: (Ptr RawTGraphQQ) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphQQ_SetFillStyle" c_tgraphqq_setfillstyle 
-  :: (Ptr RawTGraphQQ) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGraphQQ_GetName" c_tgraphqq_getname 
-  :: (Ptr RawTGraphQQ) -> IO CString
-foreign import ccall "HROOT.h TGraphQQ_Draw" c_tgraphqq_draw 
-  :: (Ptr RawTGraphQQ) -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphQQ_FindObject" c_tgraphqq_findobject 
-  :: (Ptr RawTGraphQQ) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TGraphQQ_SaveAs" c_tgraphqq_saveas 
-  :: (Ptr RawTGraphQQ) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TGraphQQ_Write" c_tgraphqq_write 
-  :: (Ptr RawTGraphQQ) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TGraphQQ_delete" c_tgraphqq_delete 
-  :: (Ptr RawTGraphQQ) -> IO ()
-foreign import ccall "HROOT.h TGraphQQ_newTGraphQQ" c_tgraphqq_newtgraphqq 
-  :: CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO (Ptr RawTGraphQQ)
-
-foreign import ccall "HROOT.h TEllipse_GetName" c_tellipse_getname 
-  :: (Ptr RawTEllipse) -> IO CString
-foreign import ccall "HROOT.h TEllipse_Draw" c_tellipse_draw 
-  :: (Ptr RawTEllipse) -> CString -> IO ()
-foreign import ccall "HROOT.h TEllipse_FindObject" c_tellipse_findobject 
-  :: (Ptr RawTEllipse) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TEllipse_SaveAs" c_tellipse_saveas 
-  :: (Ptr RawTEllipse) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TEllipse_Write" c_tellipse_write 
-  :: (Ptr RawTEllipse) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TEllipse_SetLineColor" c_tellipse_setlinecolor 
-  :: (Ptr RawTEllipse) -> CInt -> IO ()
-foreign import ccall "HROOT.h TEllipse_SetFillColor" c_tellipse_setfillcolor 
-  :: (Ptr RawTEllipse) -> CInt -> IO ()
-foreign import ccall "HROOT.h TEllipse_SetFillStyle" c_tellipse_setfillstyle 
-  :: (Ptr RawTEllipse) -> CInt -> IO ()
-foreign import ccall "HROOT.h TEllipse_delete" c_tellipse_delete 
-  :: (Ptr RawTEllipse) -> IO ()
-foreign import ccall "HROOT.h TEllipse_newTEllipse" c_tellipse_newtellipse 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTEllipse)
-
-foreign import ccall "HROOT.h TArc_GetName" c_tarc_getname 
-  :: (Ptr RawTArc) -> IO CString
-foreign import ccall "HROOT.h TArc_Draw" c_tarc_draw 
-  :: (Ptr RawTArc) -> CString -> IO ()
-foreign import ccall "HROOT.h TArc_FindObject" c_tarc_findobject 
-  :: (Ptr RawTArc) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TArc_SaveAs" c_tarc_saveas 
-  :: (Ptr RawTArc) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TArc_Write" c_tarc_write 
-  :: (Ptr RawTArc) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TArc_SetLineColor" c_tarc_setlinecolor 
-  :: (Ptr RawTArc) -> CInt -> IO ()
-foreign import ccall "HROOT.h TArc_SetFillColor" c_tarc_setfillcolor 
-  :: (Ptr RawTArc) -> CInt -> IO ()
-foreign import ccall "HROOT.h TArc_SetFillStyle" c_tarc_setfillstyle 
-  :: (Ptr RawTArc) -> CInt -> IO ()
-foreign import ccall "HROOT.h TArc_delete" c_tarc_delete 
-  :: (Ptr RawTArc) -> IO ()
-foreign import ccall "HROOT.h TArc_newTArc" c_tarc_newtarc 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTArc)
-
-foreign import ccall "HROOT.h TCrown_GetName" c_tcrown_getname 
-  :: (Ptr RawTCrown) -> IO CString
-foreign import ccall "HROOT.h TCrown_Draw" c_tcrown_draw 
-  :: (Ptr RawTCrown) -> CString -> IO ()
-foreign import ccall "HROOT.h TCrown_FindObject" c_tcrown_findobject 
-  :: (Ptr RawTCrown) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TCrown_SaveAs" c_tcrown_saveas 
-  :: (Ptr RawTCrown) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TCrown_Write" c_tcrown_write 
-  :: (Ptr RawTCrown) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TCrown_SetLineColor" c_tcrown_setlinecolor 
-  :: (Ptr RawTCrown) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCrown_SetFillColor" c_tcrown_setfillcolor 
-  :: (Ptr RawTCrown) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCrown_SetFillStyle" c_tcrown_setfillstyle 
-  :: (Ptr RawTCrown) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCrown_delete" c_tcrown_delete 
-  :: (Ptr RawTCrown) -> IO ()
-foreign import ccall "HROOT.h TCrown_newTCrown" c_tcrown_newtcrown 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTCrown)
-
-foreign import ccall "HROOT.h TLine_GetName" c_tline_getname 
-  :: (Ptr RawTLine) -> IO CString
-foreign import ccall "HROOT.h TLine_Draw" c_tline_draw 
-  :: (Ptr RawTLine) -> CString -> IO ()
-foreign import ccall "HROOT.h TLine_FindObject" c_tline_findobject 
-  :: (Ptr RawTLine) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TLine_SaveAs" c_tline_saveas 
-  :: (Ptr RawTLine) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TLine_Write" c_tline_write 
-  :: (Ptr RawTLine) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TLine_SetLineColor" c_tline_setlinecolor 
-  :: (Ptr RawTLine) -> CInt -> IO ()
-foreign import ccall "HROOT.h TLine_delete" c_tline_delete 
-  :: (Ptr RawTLine) -> IO ()
-foreign import ccall "HROOT.h TLine_newTLine" c_tline_newtline 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTLine)
-
-foreign import ccall "HROOT.h TArrow_SetFillColor" c_tarrow_setfillcolor 
-  :: (Ptr RawTArrow) -> CInt -> IO ()
-foreign import ccall "HROOT.h TArrow_SetFillStyle" c_tarrow_setfillstyle 
-  :: (Ptr RawTArrow) -> CInt -> IO ()
-foreign import ccall "HROOT.h TArrow_GetName" c_tarrow_getname 
-  :: (Ptr RawTArrow) -> IO CString
-foreign import ccall "HROOT.h TArrow_Draw" c_tarrow_draw 
-  :: (Ptr RawTArrow) -> CString -> IO ()
-foreign import ccall "HROOT.h TArrow_FindObject" c_tarrow_findobject 
-  :: (Ptr RawTArrow) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TArrow_SaveAs" c_tarrow_saveas 
-  :: (Ptr RawTArrow) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TArrow_Write" c_tarrow_write 
-  :: (Ptr RawTArrow) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TArrow_SetLineColor" c_tarrow_setlinecolor 
-  :: (Ptr RawTArrow) -> CInt -> IO ()
-foreign import ccall "HROOT.h TArrow_delete" c_tarrow_delete 
-  :: (Ptr RawTArrow) -> IO ()
-foreign import ccall "HROOT.h TArrow_newTArrow" c_tarrow_newtarrow 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTArrow)
-
-foreign import ccall "HROOT.h TGaxis_SetTextColor" c_tgaxis_settextcolor 
-  :: (Ptr RawTGaxis) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGaxis_SetTextAlign" c_tgaxis_settextalign 
-  :: (Ptr RawTGaxis) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGaxis_SetTextSize" c_tgaxis_settextsize 
-  :: (Ptr RawTGaxis) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TGaxis_GetName" c_tgaxis_getname 
-  :: (Ptr RawTGaxis) -> IO CString
-foreign import ccall "HROOT.h TGaxis_Draw" c_tgaxis_draw 
-  :: (Ptr RawTGaxis) -> CString -> IO ()
-foreign import ccall "HROOT.h TGaxis_FindObject" c_tgaxis_findobject 
-  :: (Ptr RawTGaxis) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TGaxis_SaveAs" c_tgaxis_saveas 
-  :: (Ptr RawTGaxis) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TGaxis_Write" c_tgaxis_write 
-  :: (Ptr RawTGaxis) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TGaxis_SetLineColor" c_tgaxis_setlinecolor 
-  :: (Ptr RawTGaxis) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGaxis_delete" c_tgaxis_delete 
-  :: (Ptr RawTGaxis) -> IO ()
-foreign import ccall "HROOT.h TGaxis_newTGaxis" c_tgaxis_newtgaxis 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CString -> CDouble -> IO (Ptr RawTGaxis)
-
-foreign import ccall "HROOT.h TShape_SetTitle" c_tshape_settitle 
-  :: (Ptr RawTShape) -> CString -> IO ()
-foreign import ccall "HROOT.h TShape_SetLineColor" c_tshape_setlinecolor 
-  :: (Ptr RawTShape) -> CInt -> IO ()
-foreign import ccall "HROOT.h TShape_SetFillColor" c_tshape_setfillcolor 
-  :: (Ptr RawTShape) -> CInt -> IO ()
-foreign import ccall "HROOT.h TShape_SetFillStyle" c_tshape_setfillstyle 
-  :: (Ptr RawTShape) -> CInt -> IO ()
-foreign import ccall "HROOT.h TShape_GetName" c_tshape_getname 
-  :: (Ptr RawTShape) -> IO CString
-foreign import ccall "HROOT.h TShape_Draw" c_tshape_draw 
-  :: (Ptr RawTShape) -> CString -> IO ()
-foreign import ccall "HROOT.h TShape_FindObject" c_tshape_findobject 
-  :: (Ptr RawTShape) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TShape_SaveAs" c_tshape_saveas 
-  :: (Ptr RawTShape) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TShape_Write" c_tshape_write 
-  :: (Ptr RawTShape) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TShape_delete" c_tshape_delete 
-  :: (Ptr RawTShape) -> IO ()
-foreign import ccall "HROOT.h TShape_newTShape" c_tshape_newtshape 
-  :: CString -> CString -> CString -> IO (Ptr RawTShape)
-
-foreign import ccall "HROOT.h TBRIK_SetTitle" c_tbrik_settitle 
-  :: (Ptr RawTBRIK) -> CString -> IO ()
-foreign import ccall "HROOT.h TBRIK_SetLineColor" c_tbrik_setlinecolor 
-  :: (Ptr RawTBRIK) -> CInt -> IO ()
-foreign import ccall "HROOT.h TBRIK_SetFillColor" c_tbrik_setfillcolor 
-  :: (Ptr RawTBRIK) -> CInt -> IO ()
-foreign import ccall "HROOT.h TBRIK_SetFillStyle" c_tbrik_setfillstyle 
-  :: (Ptr RawTBRIK) -> CInt -> IO ()
-foreign import ccall "HROOT.h TBRIK_GetName" c_tbrik_getname 
-  :: (Ptr RawTBRIK) -> IO CString
-foreign import ccall "HROOT.h TBRIK_Draw" c_tbrik_draw 
-  :: (Ptr RawTBRIK) -> CString -> IO ()
-foreign import ccall "HROOT.h TBRIK_FindObject" c_tbrik_findobject 
-  :: (Ptr RawTBRIK) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TBRIK_SaveAs" c_tbrik_saveas 
-  :: (Ptr RawTBRIK) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TBRIK_Write" c_tbrik_write 
-  :: (Ptr RawTBRIK) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TBRIK_delete" c_tbrik_delete 
-  :: (Ptr RawTBRIK) -> IO ()
-foreign import ccall "HROOT.h TBRIK_newTBRIK" c_tbrik_newtbrik 
-  :: CString -> CString -> CString -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTBRIK)
-
-foreign import ccall "HROOT.h TTUBE_SetTitle" c_ttube_settitle 
-  :: (Ptr RawTTUBE) -> CString -> IO ()
-foreign import ccall "HROOT.h TTUBE_SetLineColor" c_ttube_setlinecolor 
-  :: (Ptr RawTTUBE) -> CInt -> IO ()
-foreign import ccall "HROOT.h TTUBE_SetFillColor" c_ttube_setfillcolor 
-  :: (Ptr RawTTUBE) -> CInt -> IO ()
-foreign import ccall "HROOT.h TTUBE_SetFillStyle" c_ttube_setfillstyle 
-  :: (Ptr RawTTUBE) -> CInt -> IO ()
-foreign import ccall "HROOT.h TTUBE_GetName" c_ttube_getname 
-  :: (Ptr RawTTUBE) -> IO CString
-foreign import ccall "HROOT.h TTUBE_Draw" c_ttube_draw 
-  :: (Ptr RawTTUBE) -> CString -> IO ()
-foreign import ccall "HROOT.h TTUBE_FindObject" c_ttube_findobject 
-  :: (Ptr RawTTUBE) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TTUBE_SaveAs" c_ttube_saveas 
-  :: (Ptr RawTTUBE) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TTUBE_Write" c_ttube_write 
-  :: (Ptr RawTTUBE) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TTUBE_delete" c_ttube_delete 
-  :: (Ptr RawTTUBE) -> IO ()
-foreign import ccall "HROOT.h TTUBE_newTTUBE" c_ttube_newttube 
-  :: CString -> CString -> CString -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTTUBE)
-
-foreign import ccall "HROOT.h TPCON_SetTitle" c_tpcon_settitle 
-  :: (Ptr RawTPCON) -> CString -> IO ()
-foreign import ccall "HROOT.h TPCON_SetLineColor" c_tpcon_setlinecolor 
-  :: (Ptr RawTPCON) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPCON_SetFillColor" c_tpcon_setfillcolor 
-  :: (Ptr RawTPCON) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPCON_SetFillStyle" c_tpcon_setfillstyle 
-  :: (Ptr RawTPCON) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPCON_GetName" c_tpcon_getname 
-  :: (Ptr RawTPCON) -> IO CString
-foreign import ccall "HROOT.h TPCON_Draw" c_tpcon_draw 
-  :: (Ptr RawTPCON) -> CString -> IO ()
-foreign import ccall "HROOT.h TPCON_FindObject" c_tpcon_findobject 
-  :: (Ptr RawTPCON) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TPCON_SaveAs" c_tpcon_saveas 
-  :: (Ptr RawTPCON) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TPCON_Write" c_tpcon_write 
-  :: (Ptr RawTPCON) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TPCON_delete" c_tpcon_delete 
-  :: (Ptr RawTPCON) -> IO ()
-foreign import ccall "HROOT.h TPCON_newTPCON" c_tpcon_newtpcon 
-  :: CString -> CString -> CString -> CDouble -> CDouble -> CInt -> IO (Ptr RawTPCON)
-
-foreign import ccall "HROOT.h TSPHE_SetTitle" c_tsphe_settitle 
-  :: (Ptr RawTSPHE) -> CString -> IO ()
-foreign import ccall "HROOT.h TSPHE_SetLineColor" c_tsphe_setlinecolor 
-  :: (Ptr RawTSPHE) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSPHE_SetFillColor" c_tsphe_setfillcolor 
-  :: (Ptr RawTSPHE) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSPHE_SetFillStyle" c_tsphe_setfillstyle 
-  :: (Ptr RawTSPHE) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSPHE_GetName" c_tsphe_getname 
-  :: (Ptr RawTSPHE) -> IO CString
-foreign import ccall "HROOT.h TSPHE_Draw" c_tsphe_draw 
-  :: (Ptr RawTSPHE) -> CString -> IO ()
-foreign import ccall "HROOT.h TSPHE_FindObject" c_tsphe_findobject 
-  :: (Ptr RawTSPHE) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TSPHE_SaveAs" c_tsphe_saveas 
-  :: (Ptr RawTSPHE) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TSPHE_Write" c_tsphe_write 
-  :: (Ptr RawTSPHE) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TSPHE_delete" c_tsphe_delete 
-  :: (Ptr RawTSPHE) -> IO ()
-foreign import ccall "HROOT.h TSPHE_newTSPHE" c_tsphe_newtsphe 
-  :: CString -> CString -> CString -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTSPHE)
-
-foreign import ccall "HROOT.h TXTRU_SetTitle" c_txtru_settitle 
-  :: (Ptr RawTXTRU) -> CString -> IO ()
-foreign import ccall "HROOT.h TXTRU_SetLineColor" c_txtru_setlinecolor 
-  :: (Ptr RawTXTRU) -> CInt -> IO ()
-foreign import ccall "HROOT.h TXTRU_SetFillColor" c_txtru_setfillcolor 
-  :: (Ptr RawTXTRU) -> CInt -> IO ()
-foreign import ccall "HROOT.h TXTRU_SetFillStyle" c_txtru_setfillstyle 
-  :: (Ptr RawTXTRU) -> CInt -> IO ()
-foreign import ccall "HROOT.h TXTRU_GetName" c_txtru_getname 
-  :: (Ptr RawTXTRU) -> IO CString
-foreign import ccall "HROOT.h TXTRU_Draw" c_txtru_draw 
-  :: (Ptr RawTXTRU) -> CString -> IO ()
-foreign import ccall "HROOT.h TXTRU_FindObject" c_txtru_findobject 
-  :: (Ptr RawTXTRU) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TXTRU_SaveAs" c_txtru_saveas 
-  :: (Ptr RawTXTRU) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TXTRU_Write" c_txtru_write 
-  :: (Ptr RawTXTRU) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TXTRU_delete" c_txtru_delete 
-  :: (Ptr RawTXTRU) -> IO ()
-foreign import ccall "HROOT.h TXTRU_newTXTRU" c_txtru_newtxtru 
-  :: CString -> CString -> CString -> CInt -> CInt -> IO (Ptr RawTXTRU)
-
-foreign import ccall "HROOT.h TBox_GetName" c_tbox_getname 
-  :: (Ptr RawTBox) -> IO CString
-foreign import ccall "HROOT.h TBox_Draw" c_tbox_draw 
-  :: (Ptr RawTBox) -> CString -> IO ()
-foreign import ccall "HROOT.h TBox_FindObject" c_tbox_findobject 
-  :: (Ptr RawTBox) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TBox_SaveAs" c_tbox_saveas 
-  :: (Ptr RawTBox) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TBox_Write" c_tbox_write 
-  :: (Ptr RawTBox) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TBox_SetLineColor" c_tbox_setlinecolor 
-  :: (Ptr RawTBox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TBox_SetFillColor" c_tbox_setfillcolor 
-  :: (Ptr RawTBox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TBox_SetFillStyle" c_tbox_setfillstyle 
-  :: (Ptr RawTBox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TBox_delete" c_tbox_delete 
-  :: (Ptr RawTBox) -> IO ()
-foreign import ccall "HROOT.h TBox_newTBox" c_tbox_newtbox 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTBox)
-
-foreign import ccall "HROOT.h TPave_GetName" c_tpave_getname 
-  :: (Ptr RawTPave) -> IO CString
-foreign import ccall "HROOT.h TPave_Draw" c_tpave_draw 
-  :: (Ptr RawTPave) -> CString -> IO ()
-foreign import ccall "HROOT.h TPave_FindObject" c_tpave_findobject 
-  :: (Ptr RawTPave) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TPave_SaveAs" c_tpave_saveas 
-  :: (Ptr RawTPave) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TPave_Write" c_tpave_write 
-  :: (Ptr RawTPave) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TPave_SetLineColor" c_tpave_setlinecolor 
-  :: (Ptr RawTPave) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPave_SetFillColor" c_tpave_setfillcolor 
-  :: (Ptr RawTPave) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPave_SetFillStyle" c_tpave_setfillstyle 
-  :: (Ptr RawTPave) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPave_delete" c_tpave_delete 
-  :: (Ptr RawTPave) -> IO ()
-foreign import ccall "HROOT.h TPave_newTPave" c_tpave_newtpave 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CString -> IO (Ptr RawTPave)
-
-foreign import ccall "HROOT.h TPaveText_SetTextColor" c_tpavetext_settextcolor 
-  :: (Ptr RawTPaveText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveText_SetTextAlign" c_tpavetext_settextalign 
-  :: (Ptr RawTPaveText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveText_SetTextSize" c_tpavetext_settextsize 
-  :: (Ptr RawTPaveText) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TPaveText_GetName" c_tpavetext_getname 
-  :: (Ptr RawTPaveText) -> IO CString
-foreign import ccall "HROOT.h TPaveText_Draw" c_tpavetext_draw 
-  :: (Ptr RawTPaveText) -> CString -> IO ()
-foreign import ccall "HROOT.h TPaveText_FindObject" c_tpavetext_findobject 
-  :: (Ptr RawTPaveText) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TPaveText_SaveAs" c_tpavetext_saveas 
-  :: (Ptr RawTPaveText) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TPaveText_Write" c_tpavetext_write 
-  :: (Ptr RawTPaveText) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TPaveText_SetLineColor" c_tpavetext_setlinecolor 
-  :: (Ptr RawTPaveText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveText_SetFillColor" c_tpavetext_setfillcolor 
-  :: (Ptr RawTPaveText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveText_SetFillStyle" c_tpavetext_setfillstyle 
-  :: (Ptr RawTPaveText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveText_delete" c_tpavetext_delete 
-  :: (Ptr RawTPaveText) -> IO ()
-foreign import ccall "HROOT.h TPaveText_newTPaveText" c_tpavetext_newtpavetext 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTPaveText)
-
-foreign import ccall "HROOT.h TDiamond_SetTextColor" c_tdiamond_settextcolor 
-  :: (Ptr RawTDiamond) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDiamond_SetTextAlign" c_tdiamond_settextalign 
-  :: (Ptr RawTDiamond) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDiamond_SetTextSize" c_tdiamond_settextsize 
-  :: (Ptr RawTDiamond) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TDiamond_GetName" c_tdiamond_getname 
-  :: (Ptr RawTDiamond) -> IO CString
-foreign import ccall "HROOT.h TDiamond_Draw" c_tdiamond_draw 
-  :: (Ptr RawTDiamond) -> CString -> IO ()
-foreign import ccall "HROOT.h TDiamond_FindObject" c_tdiamond_findobject 
-  :: (Ptr RawTDiamond) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TDiamond_SaveAs" c_tdiamond_saveas 
-  :: (Ptr RawTDiamond) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TDiamond_Write" c_tdiamond_write 
-  :: (Ptr RawTDiamond) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TDiamond_SetLineColor" c_tdiamond_setlinecolor 
-  :: (Ptr RawTDiamond) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDiamond_SetFillColor" c_tdiamond_setfillcolor 
-  :: (Ptr RawTDiamond) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDiamond_SetFillStyle" c_tdiamond_setfillstyle 
-  :: (Ptr RawTDiamond) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDiamond_delete" c_tdiamond_delete 
-  :: (Ptr RawTDiamond) -> IO ()
-foreign import ccall "HROOT.h TDiamond_newTDiamond" c_tdiamond_newtdiamond 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTDiamond)
-
-foreign import ccall "HROOT.h TPaveStats_SetTextColor" c_tpavestats_settextcolor 
-  :: (Ptr RawTPaveStats) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveStats_SetTextAlign" c_tpavestats_settextalign 
-  :: (Ptr RawTPaveStats) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveStats_SetTextSize" c_tpavestats_settextsize 
-  :: (Ptr RawTPaveStats) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TPaveStats_GetName" c_tpavestats_getname 
-  :: (Ptr RawTPaveStats) -> IO CString
-foreign import ccall "HROOT.h TPaveStats_Draw" c_tpavestats_draw 
-  :: (Ptr RawTPaveStats) -> CString -> IO ()
-foreign import ccall "HROOT.h TPaveStats_FindObject" c_tpavestats_findobject 
-  :: (Ptr RawTPaveStats) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TPaveStats_SaveAs" c_tpavestats_saveas 
-  :: (Ptr RawTPaveStats) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TPaveStats_Write" c_tpavestats_write 
-  :: (Ptr RawTPaveStats) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TPaveStats_SetLineColor" c_tpavestats_setlinecolor 
-  :: (Ptr RawTPaveStats) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveStats_SetFillColor" c_tpavestats_setfillcolor 
-  :: (Ptr RawTPaveStats) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveStats_SetFillStyle" c_tpavestats_setfillstyle 
-  :: (Ptr RawTPaveStats) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveStats_delete" c_tpavestats_delete 
-  :: (Ptr RawTPaveStats) -> IO ()
-foreign import ccall "HROOT.h TPaveStats_newTPaveStats" c_tpavestats_newtpavestats 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTPaveStats)
-
-foreign import ccall "HROOT.h TPavesText_SetTextColor" c_tpavestext_settextcolor 
-  :: (Ptr RawTPavesText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPavesText_SetTextAlign" c_tpavestext_settextalign 
-  :: (Ptr RawTPavesText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPavesText_SetTextSize" c_tpavestext_settextsize 
-  :: (Ptr RawTPavesText) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TPavesText_GetName" c_tpavestext_getname 
-  :: (Ptr RawTPavesText) -> IO CString
-foreign import ccall "HROOT.h TPavesText_Draw" c_tpavestext_draw 
-  :: (Ptr RawTPavesText) -> CString -> IO ()
-foreign import ccall "HROOT.h TPavesText_FindObject" c_tpavestext_findobject 
-  :: (Ptr RawTPavesText) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TPavesText_SaveAs" c_tpavestext_saveas 
-  :: (Ptr RawTPavesText) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TPavesText_Write" c_tpavestext_write 
-  :: (Ptr RawTPavesText) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TPavesText_SetLineColor" c_tpavestext_setlinecolor 
-  :: (Ptr RawTPavesText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPavesText_SetFillColor" c_tpavestext_setfillcolor 
-  :: (Ptr RawTPavesText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPavesText_SetFillStyle" c_tpavestext_setfillstyle 
-  :: (Ptr RawTPavesText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPavesText_delete" c_tpavestext_delete 
-  :: (Ptr RawTPavesText) -> IO ()
-foreign import ccall "HROOT.h TPavesText_newTPavesText" c_tpavestext_newtpavestext 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CString -> IO (Ptr RawTPavesText)
-
-foreign import ccall "HROOT.h TLegend_SetTextColor" c_tlegend_settextcolor 
-  :: (Ptr RawTLegend) -> CInt -> IO ()
-foreign import ccall "HROOT.h TLegend_SetTextAlign" c_tlegend_settextalign 
-  :: (Ptr RawTLegend) -> CInt -> IO ()
-foreign import ccall "HROOT.h TLegend_SetTextSize" c_tlegend_settextsize 
-  :: (Ptr RawTLegend) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TLegend_GetName" c_tlegend_getname 
-  :: (Ptr RawTLegend) -> IO CString
-foreign import ccall "HROOT.h TLegend_Draw" c_tlegend_draw 
-  :: (Ptr RawTLegend) -> CString -> IO ()
-foreign import ccall "HROOT.h TLegend_FindObject" c_tlegend_findobject 
-  :: (Ptr RawTLegend) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TLegend_SaveAs" c_tlegend_saveas 
-  :: (Ptr RawTLegend) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TLegend_Write" c_tlegend_write 
-  :: (Ptr RawTLegend) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TLegend_SetLineColor" c_tlegend_setlinecolor 
-  :: (Ptr RawTLegend) -> CInt -> IO ()
-foreign import ccall "HROOT.h TLegend_SetFillColor" c_tlegend_setfillcolor 
-  :: (Ptr RawTLegend) -> CInt -> IO ()
-foreign import ccall "HROOT.h TLegend_SetFillStyle" c_tlegend_setfillstyle 
-  :: (Ptr RawTLegend) -> CInt -> IO ()
-foreign import ccall "HROOT.h TLegend_delete" c_tlegend_delete 
-  :: (Ptr RawTLegend) -> IO ()
-foreign import ccall "HROOT.h TLegend_newTLegend" c_tlegend_newtlegend 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> CString -> IO (Ptr RawTLegend)
-
-foreign import ccall "HROOT.h TPaveLabel_SetTextColor" c_tpavelabel_settextcolor 
-  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveLabel_SetTextAlign" c_tpavelabel_settextalign 
-  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveLabel_SetTextSize" c_tpavelabel_settextsize 
-  :: (Ptr RawTPaveLabel) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TPaveLabel_GetName" c_tpavelabel_getname 
-  :: (Ptr RawTPaveLabel) -> IO CString
-foreign import ccall "HROOT.h TPaveLabel_Draw" c_tpavelabel_draw 
-  :: (Ptr RawTPaveLabel) -> CString -> IO ()
-foreign import ccall "HROOT.h TPaveLabel_FindObject" c_tpavelabel_findobject 
-  :: (Ptr RawTPaveLabel) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TPaveLabel_SaveAs" c_tpavelabel_saveas 
-  :: (Ptr RawTPaveLabel) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TPaveLabel_Write" c_tpavelabel_write 
-  :: (Ptr RawTPaveLabel) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TPaveLabel_SetLineColor" c_tpavelabel_setlinecolor 
-  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveLabel_SetFillColor" c_tpavelabel_setfillcolor 
-  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveLabel_SetFillStyle" c_tpavelabel_setfillstyle 
-  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveLabel_delete" c_tpavelabel_delete 
-  :: (Ptr RawTPaveLabel) -> IO ()
-foreign import ccall "HROOT.h TPaveLabel_newTPaveLabel" c_tpavelabel_newtpavelabel 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> CString -> IO (Ptr RawTPaveLabel)
-
-foreign import ccall "HROOT.h TPaveClass_SetTextColor" c_tpaveclass_settextcolor 
-  :: (Ptr RawTPaveClass) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveClass_SetTextAlign" c_tpaveclass_settextalign 
-  :: (Ptr RawTPaveClass) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveClass_SetTextSize" c_tpaveclass_settextsize 
-  :: (Ptr RawTPaveClass) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TPaveClass_GetName" c_tpaveclass_getname 
-  :: (Ptr RawTPaveClass) -> IO CString
-foreign import ccall "HROOT.h TPaveClass_Draw" c_tpaveclass_draw 
-  :: (Ptr RawTPaveClass) -> CString -> IO ()
-foreign import ccall "HROOT.h TPaveClass_FindObject" c_tpaveclass_findobject 
-  :: (Ptr RawTPaveClass) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TPaveClass_SaveAs" c_tpaveclass_saveas 
-  :: (Ptr RawTPaveClass) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TPaveClass_Write" c_tpaveclass_write 
-  :: (Ptr RawTPaveClass) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TPaveClass_SetLineColor" c_tpaveclass_setlinecolor 
-  :: (Ptr RawTPaveClass) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveClass_SetFillColor" c_tpaveclass_setfillcolor 
-  :: (Ptr RawTPaveClass) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveClass_SetFillStyle" c_tpaveclass_setfillstyle 
-  :: (Ptr RawTPaveClass) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPaveClass_delete" c_tpaveclass_delete 
-  :: (Ptr RawTPaveClass) -> IO ()
-
-foreign import ccall "HROOT.h TWbox_GetName" c_twbox_getname 
-  :: (Ptr RawTWbox) -> IO CString
-foreign import ccall "HROOT.h TWbox_Draw" c_twbox_draw 
-  :: (Ptr RawTWbox) -> CString -> IO ()
-foreign import ccall "HROOT.h TWbox_FindObject" c_twbox_findobject 
-  :: (Ptr RawTWbox) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TWbox_SaveAs" c_twbox_saveas 
-  :: (Ptr RawTWbox) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TWbox_Write" c_twbox_write 
-  :: (Ptr RawTWbox) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TWbox_SetLineColor" c_twbox_setlinecolor 
-  :: (Ptr RawTWbox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TWbox_SetFillColor" c_twbox_setfillcolor 
-  :: (Ptr RawTWbox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TWbox_SetFillStyle" c_twbox_setfillstyle 
-  :: (Ptr RawTWbox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TWbox_delete" c_twbox_delete 
-  :: (Ptr RawTWbox) -> IO ()
-foreign import ccall "HROOT.h TWbox_newTWbox" c_twbox_newtwbox 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CInt -> CInt -> IO (Ptr RawTWbox)
-foreign import ccall "HROOT.h TWbox_SetBorderMode" c_twbox_setbordermode 
-  :: (Ptr RawTWbox) -> CInt -> IO ()
-
-foreign import ccall "HROOT.h TFrame_SetBorderMode" c_tframe_setbordermode 
-  :: (Ptr RawTFrame) -> CInt -> IO ()
-foreign import ccall "HROOT.h TFrame_GetName" c_tframe_getname 
-  :: (Ptr RawTFrame) -> IO CString
-foreign import ccall "HROOT.h TFrame_Draw" c_tframe_draw 
-  :: (Ptr RawTFrame) -> CString -> IO ()
-foreign import ccall "HROOT.h TFrame_FindObject" c_tframe_findobject 
-  :: (Ptr RawTFrame) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TFrame_SaveAs" c_tframe_saveas 
-  :: (Ptr RawTFrame) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TFrame_Write" c_tframe_write 
-  :: (Ptr RawTFrame) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TFrame_SetLineColor" c_tframe_setlinecolor 
-  :: (Ptr RawTFrame) -> CInt -> IO ()
-foreign import ccall "HROOT.h TFrame_SetFillColor" c_tframe_setfillcolor 
-  :: (Ptr RawTFrame) -> CInt -> IO ()
-foreign import ccall "HROOT.h TFrame_SetFillStyle" c_tframe_setfillstyle 
-  :: (Ptr RawTFrame) -> CInt -> IO ()
-foreign import ccall "HROOT.h TFrame_delete" c_tframe_delete 
-  :: (Ptr RawTFrame) -> IO ()
-foreign import ccall "HROOT.h TFrame_newTFrame" c_tframe_newtframe 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTFrame)
-
-foreign import ccall "HROOT.h TSliderBox_SetBorderMode" c_tsliderbox_setbordermode 
-  :: (Ptr RawTSliderBox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSliderBox_GetName" c_tsliderbox_getname 
-  :: (Ptr RawTSliderBox) -> IO CString
-foreign import ccall "HROOT.h TSliderBox_Draw" c_tsliderbox_draw 
-  :: (Ptr RawTSliderBox) -> CString -> IO ()
-foreign import ccall "HROOT.h TSliderBox_FindObject" c_tsliderbox_findobject 
-  :: (Ptr RawTSliderBox) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TSliderBox_SaveAs" c_tsliderbox_saveas 
-  :: (Ptr RawTSliderBox) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TSliderBox_Write" c_tsliderbox_write 
-  :: (Ptr RawTSliderBox) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TSliderBox_SetLineColor" c_tsliderbox_setlinecolor 
-  :: (Ptr RawTSliderBox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSliderBox_SetFillColor" c_tsliderbox_setfillcolor 
-  :: (Ptr RawTSliderBox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSliderBox_SetFillStyle" c_tsliderbox_setfillstyle 
-  :: (Ptr RawTSliderBox) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSliderBox_delete" c_tsliderbox_delete 
-  :: (Ptr RawTSliderBox) -> IO ()
-foreign import ccall "HROOT.h TSliderBox_newTSliderBox" c_tsliderbox_newtsliderbox 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CInt -> CInt -> IO (Ptr RawTSliderBox)
-
-foreign import ccall "HROOT.h TTree_SetTitle" c_ttree_settitle 
-  :: (Ptr RawTTree) -> CString -> IO ()
-foreign import ccall "HROOT.h TTree_SetLineColor" c_ttree_setlinecolor 
-  :: (Ptr RawTTree) -> CInt -> IO ()
-foreign import ccall "HROOT.h TTree_SetFillColor" c_ttree_setfillcolor 
-  :: (Ptr RawTTree) -> CInt -> IO ()
-foreign import ccall "HROOT.h TTree_SetFillStyle" c_ttree_setfillstyle 
-  :: (Ptr RawTTree) -> CInt -> IO ()
-foreign import ccall "HROOT.h TTree_GetName" c_ttree_getname 
-  :: (Ptr RawTTree) -> IO CString
-foreign import ccall "HROOT.h TTree_Draw" c_ttree_draw 
-  :: (Ptr RawTTree) -> CString -> IO ()
-foreign import ccall "HROOT.h TTree_FindObject" c_ttree_findobject 
-  :: (Ptr RawTTree) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TTree_SaveAs" c_ttree_saveas 
-  :: (Ptr RawTTree) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TTree_Write" c_ttree_write 
-  :: (Ptr RawTTree) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TTree_delete" c_ttree_delete 
-  :: (Ptr RawTTree) -> IO ()
-foreign import ccall "HROOT.h TTree_newTTree" c_ttree_newttree 
-  :: CString -> CString -> CInt -> IO (Ptr RawTTree)
-
-foreign import ccall "HROOT.h TChain_SetTitle" c_tchain_settitle 
-  :: (Ptr RawTChain) -> CString -> IO ()
-foreign import ccall "HROOT.h TChain_SetLineColor" c_tchain_setlinecolor 
-  :: (Ptr RawTChain) -> CInt -> IO ()
-foreign import ccall "HROOT.h TChain_SetFillColor" c_tchain_setfillcolor 
-  :: (Ptr RawTChain) -> CInt -> IO ()
-foreign import ccall "HROOT.h TChain_SetFillStyle" c_tchain_setfillstyle 
-  :: (Ptr RawTChain) -> CInt -> IO ()
-foreign import ccall "HROOT.h TChain_GetName" c_tchain_getname 
-  :: (Ptr RawTChain) -> IO CString
-foreign import ccall "HROOT.h TChain_Draw" c_tchain_draw 
-  :: (Ptr RawTChain) -> CString -> IO ()
-foreign import ccall "HROOT.h TChain_FindObject" c_tchain_findobject 
-  :: (Ptr RawTChain) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TChain_SaveAs" c_tchain_saveas 
-  :: (Ptr RawTChain) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TChain_Write" c_tchain_write 
-  :: (Ptr RawTChain) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TChain_delete" c_tchain_delete 
-  :: (Ptr RawTChain) -> IO ()
-foreign import ccall "HROOT.h TChain_newTChain" c_tchain_newtchain 
-  :: CString -> CString -> IO (Ptr RawTChain)
-
-foreign import ccall "HROOT.h TNtuple_SetTitle" c_tntuple_settitle 
-  :: (Ptr RawTNtuple) -> CString -> IO ()
-foreign import ccall "HROOT.h TNtuple_SetLineColor" c_tntuple_setlinecolor 
-  :: (Ptr RawTNtuple) -> CInt -> IO ()
-foreign import ccall "HROOT.h TNtuple_SetFillColor" c_tntuple_setfillcolor 
-  :: (Ptr RawTNtuple) -> CInt -> IO ()
-foreign import ccall "HROOT.h TNtuple_SetFillStyle" c_tntuple_setfillstyle 
-  :: (Ptr RawTNtuple) -> CInt -> IO ()
-foreign import ccall "HROOT.h TNtuple_GetName" c_tntuple_getname 
-  :: (Ptr RawTNtuple) -> IO CString
-foreign import ccall "HROOT.h TNtuple_Draw" c_tntuple_draw 
-  :: (Ptr RawTNtuple) -> CString -> IO ()
-foreign import ccall "HROOT.h TNtuple_FindObject" c_tntuple_findobject 
-  :: (Ptr RawTNtuple) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TNtuple_SaveAs" c_tntuple_saveas 
-  :: (Ptr RawTNtuple) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TNtuple_Write" c_tntuple_write 
-  :: (Ptr RawTNtuple) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TNtuple_delete" c_tntuple_delete 
-  :: (Ptr RawTNtuple) -> IO ()
-foreign import ccall "HROOT.h TNtuple_newTNtuple" c_tntuple_newtntuple 
-  :: CString -> CString -> CString -> CInt -> IO (Ptr RawTNtuple)
-
-foreign import ccall "HROOT.h TNtupleD_SetTitle" c_tntupled_settitle 
-  :: (Ptr RawTNtupleD) -> CString -> IO ()
-foreign import ccall "HROOT.h TNtupleD_SetLineColor" c_tntupled_setlinecolor 
-  :: (Ptr RawTNtupleD) -> CInt -> IO ()
-foreign import ccall "HROOT.h TNtupleD_SetFillColor" c_tntupled_setfillcolor 
-  :: (Ptr RawTNtupleD) -> CInt -> IO ()
-foreign import ccall "HROOT.h TNtupleD_SetFillStyle" c_tntupled_setfillstyle 
-  :: (Ptr RawTNtupleD) -> CInt -> IO ()
-foreign import ccall "HROOT.h TNtupleD_GetName" c_tntupled_getname 
-  :: (Ptr RawTNtupleD) -> IO CString
-foreign import ccall "HROOT.h TNtupleD_Draw" c_tntupled_draw 
-  :: (Ptr RawTNtupleD) -> CString -> IO ()
-foreign import ccall "HROOT.h TNtupleD_FindObject" c_tntupled_findobject 
-  :: (Ptr RawTNtupleD) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TNtupleD_SaveAs" c_tntupled_saveas 
-  :: (Ptr RawTNtupleD) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TNtupleD_Write" c_tntupled_write 
-  :: (Ptr RawTNtupleD) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TNtupleD_delete" c_tntupled_delete 
-  :: (Ptr RawTNtupleD) -> IO ()
-foreign import ccall "HROOT.h TNtupleD_newTNtupleD" c_tntupled_newtntupled 
-  :: CString -> CString -> CString -> CInt -> IO (Ptr RawTNtupleD)
-
-foreign import ccall "HROOT.h TTreeSQL_SetTitle" c_ttreesql_settitle 
-  :: (Ptr RawTTreeSQL) -> CString -> IO ()
-foreign import ccall "HROOT.h TTreeSQL_SetLineColor" c_ttreesql_setlinecolor 
-  :: (Ptr RawTTreeSQL) -> CInt -> IO ()
-foreign import ccall "HROOT.h TTreeSQL_SetFillColor" c_ttreesql_setfillcolor 
-  :: (Ptr RawTTreeSQL) -> CInt -> IO ()
-foreign import ccall "HROOT.h TTreeSQL_SetFillStyle" c_ttreesql_setfillstyle 
-  :: (Ptr RawTTreeSQL) -> CInt -> IO ()
-foreign import ccall "HROOT.h TTreeSQL_GetName" c_ttreesql_getname 
-  :: (Ptr RawTTreeSQL) -> IO CString
-foreign import ccall "HROOT.h TTreeSQL_Draw" c_ttreesql_draw 
-  :: (Ptr RawTTreeSQL) -> CString -> IO ()
-foreign import ccall "HROOT.h TTreeSQL_FindObject" c_ttreesql_findobject 
-  :: (Ptr RawTTreeSQL) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TTreeSQL_SaveAs" c_ttreesql_saveas 
-  :: (Ptr RawTTreeSQL) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TTreeSQL_Write" c_ttreesql_write 
-  :: (Ptr RawTTreeSQL) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TTreeSQL_delete" c_ttreesql_delete 
-  :: (Ptr RawTTreeSQL) -> IO ()
-
-foreign import ccall "HROOT.h TPolyLine_GetName" c_tpolyline_getname 
-  :: (Ptr RawTPolyLine) -> IO CString
-foreign import ccall "HROOT.h TPolyLine_Draw" c_tpolyline_draw 
-  :: (Ptr RawTPolyLine) -> CString -> IO ()
-foreign import ccall "HROOT.h TPolyLine_FindObject" c_tpolyline_findobject 
-  :: (Ptr RawTPolyLine) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TPolyLine_SaveAs" c_tpolyline_saveas 
-  :: (Ptr RawTPolyLine) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TPolyLine_Write" c_tpolyline_write 
-  :: (Ptr RawTPolyLine) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TPolyLine_SetLineColor" c_tpolyline_setlinecolor 
-  :: (Ptr RawTPolyLine) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPolyLine_SetFillColor" c_tpolyline_setfillcolor 
-  :: (Ptr RawTPolyLine) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPolyLine_SetFillStyle" c_tpolyline_setfillstyle 
-  :: (Ptr RawTPolyLine) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPolyLine_delete" c_tpolyline_delete 
-  :: (Ptr RawTPolyLine) -> IO ()
-foreign import ccall "HROOT.h TPolyLine_newTPolyLine" c_tpolyline_newtpolyline 
-  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO (Ptr RawTPolyLine)
-
-foreign import ccall "HROOT.h TCurlyLine_GetName" c_tcurlyline_getname 
-  :: (Ptr RawTCurlyLine) -> IO CString
-foreign import ccall "HROOT.h TCurlyLine_Draw" c_tcurlyline_draw 
-  :: (Ptr RawTCurlyLine) -> CString -> IO ()
-foreign import ccall "HROOT.h TCurlyLine_FindObject" c_tcurlyline_findobject 
-  :: (Ptr RawTCurlyLine) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TCurlyLine_SaveAs" c_tcurlyline_saveas 
-  :: (Ptr RawTCurlyLine) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TCurlyLine_Write" c_tcurlyline_write 
-  :: (Ptr RawTCurlyLine) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TCurlyLine_SetLineColor" c_tcurlyline_setlinecolor 
-  :: (Ptr RawTCurlyLine) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCurlyLine_SetFillColor" c_tcurlyline_setfillcolor 
-  :: (Ptr RawTCurlyLine) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCurlyLine_SetFillStyle" c_tcurlyline_setfillstyle 
-  :: (Ptr RawTCurlyLine) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCurlyLine_delete" c_tcurlyline_delete 
-  :: (Ptr RawTCurlyLine) -> IO ()
-foreign import ccall "HROOT.h TCurlyLine_newTCurlyLine" c_tcurlyline_newtcurlyline 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTCurlyLine)
-
-foreign import ccall "HROOT.h TCurlyArc_GetName" c_tcurlyarc_getname 
-  :: (Ptr RawTCurlyArc) -> IO CString
-foreign import ccall "HROOT.h TCurlyArc_Draw" c_tcurlyarc_draw 
-  :: (Ptr RawTCurlyArc) -> CString -> IO ()
-foreign import ccall "HROOT.h TCurlyArc_FindObject" c_tcurlyarc_findobject 
-  :: (Ptr RawTCurlyArc) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TCurlyArc_SaveAs" c_tcurlyarc_saveas 
-  :: (Ptr RawTCurlyArc) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TCurlyArc_Write" c_tcurlyarc_write 
-  :: (Ptr RawTCurlyArc) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TCurlyArc_SetLineColor" c_tcurlyarc_setlinecolor 
-  :: (Ptr RawTCurlyArc) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCurlyArc_SetFillColor" c_tcurlyarc_setfillcolor 
-  :: (Ptr RawTCurlyArc) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCurlyArc_SetFillStyle" c_tcurlyarc_setfillstyle 
-  :: (Ptr RawTCurlyArc) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCurlyArc_delete" c_tcurlyarc_delete 
-  :: (Ptr RawTCurlyArc) -> IO ()
-foreign import ccall "HROOT.h TCurlyArc_newTCurlyArc" c_tcurlyarc_newtcurlyarc 
-  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTCurlyArc)
-
-foreign import ccall "HROOT.h TEfficiency_SetTitle" c_tefficiency_settitle 
-  :: (Ptr RawTEfficiency) -> CString -> IO ()
-foreign import ccall "HROOT.h TEfficiency_SetLineColor" c_tefficiency_setlinecolor 
-  :: (Ptr RawTEfficiency) -> CInt -> IO ()
-foreign import ccall "HROOT.h TEfficiency_SetFillColor" c_tefficiency_setfillcolor 
-  :: (Ptr RawTEfficiency) -> CInt -> IO ()
-foreign import ccall "HROOT.h TEfficiency_SetFillStyle" c_tefficiency_setfillstyle 
-  :: (Ptr RawTEfficiency) -> CInt -> IO ()
-foreign import ccall "HROOT.h TEfficiency_GetName" c_tefficiency_getname 
-  :: (Ptr RawTEfficiency) -> IO CString
-foreign import ccall "HROOT.h TEfficiency_Draw" c_tefficiency_draw 
-  :: (Ptr RawTEfficiency) -> CString -> IO ()
-foreign import ccall "HROOT.h TEfficiency_FindObject" c_tefficiency_findobject 
-  :: (Ptr RawTEfficiency) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TEfficiency_SaveAs" c_tefficiency_saveas 
-  :: (Ptr RawTEfficiency) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TEfficiency_Write" c_tefficiency_write 
-  :: (Ptr RawTEfficiency) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TEfficiency_delete" c_tefficiency_delete 
-  :: (Ptr RawTEfficiency) -> IO ()
-
-foreign import ccall "HROOT.h TAxis_SetTitle" c_taxis_settitle 
-  :: (Ptr RawTAxis) -> CString -> IO ()
-foreign import ccall "HROOT.h TAxis_SetLabelColor" c_taxis_setlabelcolor 
-  :: (Ptr RawTAxis) -> CInt -> IO ()
-foreign import ccall "HROOT.h TAxis_SetLabelSize" c_taxis_setlabelsize 
-  :: (Ptr RawTAxis) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TAxis_SetTickLength" c_taxis_setticklength 
-  :: (Ptr RawTAxis) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TAxis_SetTitleOffset" c_taxis_settitleoffset 
-  :: (Ptr RawTAxis) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TAxis_SetNdivisions" c_taxis_setndivisions 
-  :: (Ptr RawTAxis) -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TAxis_GetName" c_taxis_getname 
-  :: (Ptr RawTAxis) -> IO CString
-foreign import ccall "HROOT.h TAxis_Draw" c_taxis_draw 
-  :: (Ptr RawTAxis) -> CString -> IO ()
-foreign import ccall "HROOT.h TAxis_FindObject" c_taxis_findobject 
-  :: (Ptr RawTAxis) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TAxis_SaveAs" c_taxis_saveas 
-  :: (Ptr RawTAxis) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TAxis_Write" c_taxis_write 
-  :: (Ptr RawTAxis) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TAxis_delete" c_taxis_delete 
-  :: (Ptr RawTAxis) -> IO ()
-
-foreign import ccall "HROOT.h TLatex_SetLineColor" c_tlatex_setlinecolor 
-  :: (Ptr RawTLatex) -> CInt -> IO ()
-foreign import ccall "HROOT.h TLatex_SetTitle" c_tlatex_settitle 
-  :: (Ptr RawTLatex) -> CString -> IO ()
-foreign import ccall "HROOT.h TLatex_SetTextColor" c_tlatex_settextcolor 
-  :: (Ptr RawTLatex) -> CInt -> IO ()
-foreign import ccall "HROOT.h TLatex_SetTextAlign" c_tlatex_settextalign 
-  :: (Ptr RawTLatex) -> CInt -> IO ()
-foreign import ccall "HROOT.h TLatex_SetTextSize" c_tlatex_settextsize 
-  :: (Ptr RawTLatex) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TLatex_GetName" c_tlatex_getname 
-  :: (Ptr RawTLatex) -> IO CString
-foreign import ccall "HROOT.h TLatex_Draw" c_tlatex_draw 
-  :: (Ptr RawTLatex) -> CString -> IO ()
-foreign import ccall "HROOT.h TLatex_FindObject" c_tlatex_findobject 
-  :: (Ptr RawTLatex) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TLatex_SaveAs" c_tlatex_saveas 
-  :: (Ptr RawTLatex) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TLatex_Write" c_tlatex_write 
-  :: (Ptr RawTLatex) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TLatex_delete" c_tlatex_delete 
-  :: (Ptr RawTLatex) -> IO ()
-foreign import ccall "HROOT.h TLatex_newTLatex" c_tlatex_newtlatex 
-  :: CDouble -> CDouble -> CString -> IO (Ptr RawTLatex)
-foreign import ccall "HROOT.h TLatex_tLatexDrawLatex" c_tlatex_tlatexdrawlatex 
-  :: (Ptr RawTLatex) -> CDouble -> CDouble -> CString -> IO (Ptr RawTLatex)
-
-foreign import ccall "HROOT.h TText_SetTitle" c_ttext_settitle 
-  :: (Ptr RawTText) -> CString -> IO ()
-foreign import ccall "HROOT.h TText_SetTextColor" c_ttext_settextcolor 
-  :: (Ptr RawTText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TText_SetTextAlign" c_ttext_settextalign 
-  :: (Ptr RawTText) -> CInt -> IO ()
-foreign import ccall "HROOT.h TText_SetTextSize" c_ttext_settextsize 
-  :: (Ptr RawTText) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TText_GetName" c_ttext_getname 
-  :: (Ptr RawTText) -> IO CString
-foreign import ccall "HROOT.h TText_Draw" c_ttext_draw 
-  :: (Ptr RawTText) -> CString -> IO ()
-foreign import ccall "HROOT.h TText_FindObject" c_ttext_findobject 
-  :: (Ptr RawTText) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TText_SaveAs" c_ttext_saveas 
-  :: (Ptr RawTText) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TText_Write" c_ttext_write 
-  :: (Ptr RawTText) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TText_delete" c_ttext_delete 
-  :: (Ptr RawTText) -> IO ()
-
-foreign import ccall "HROOT.h TDirectory_SetTitle" c_tdirectory_settitle 
-  :: (Ptr RawTDirectory) -> CString -> IO ()
-foreign import ccall "HROOT.h TDirectory_GetName" c_tdirectory_getname 
-  :: (Ptr RawTDirectory) -> IO CString
-foreign import ccall "HROOT.h TDirectory_Draw" c_tdirectory_draw 
-  :: (Ptr RawTDirectory) -> CString -> IO ()
-foreign import ccall "HROOT.h TDirectory_FindObject" c_tdirectory_findobject 
-  :: (Ptr RawTDirectory) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TDirectory_SaveAs" c_tdirectory_saveas 
-  :: (Ptr RawTDirectory) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TDirectory_Write" c_tdirectory_write 
-  :: (Ptr RawTDirectory) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TDirectory_delete" c_tdirectory_delete 
-  :: (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TDirectory_Close" c_tdirectory_close 
-  :: (Ptr RawTDirectory) -> CString -> IO ()
-
-foreign import ccall "HROOT.h TDirectoryFile_Close" c_tdirectoryfile_close 
-  :: (Ptr RawTDirectoryFile) -> CString -> IO ()
-foreign import ccall "HROOT.h TDirectoryFile_SetTitle" c_tdirectoryfile_settitle 
-  :: (Ptr RawTDirectoryFile) -> CString -> IO ()
-foreign import ccall "HROOT.h TDirectoryFile_GetName" c_tdirectoryfile_getname 
-  :: (Ptr RawTDirectoryFile) -> IO CString
-foreign import ccall "HROOT.h TDirectoryFile_Draw" c_tdirectoryfile_draw 
-  :: (Ptr RawTDirectoryFile) -> CString -> IO ()
-foreign import ccall "HROOT.h TDirectoryFile_FindObject" c_tdirectoryfile_findobject 
-  :: (Ptr RawTDirectoryFile) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TDirectoryFile_SaveAs" c_tdirectoryfile_saveas 
-  :: (Ptr RawTDirectoryFile) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TDirectoryFile_Write" c_tdirectoryfile_write 
-  :: (Ptr RawTDirectoryFile) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TDirectoryFile_delete" c_tdirectoryfile_delete 
-  :: (Ptr RawTDirectoryFile) -> IO ()
-
-foreign import ccall "HROOT.h TFile_Close" c_tfile_close 
-  :: (Ptr RawTFile) -> CString -> IO ()
-foreign import ccall "HROOT.h TFile_SetTitle" c_tfile_settitle 
-  :: (Ptr RawTFile) -> CString -> IO ()
-foreign import ccall "HROOT.h TFile_GetName" c_tfile_getname 
-  :: (Ptr RawTFile) -> IO CString
-foreign import ccall "HROOT.h TFile_Draw" c_tfile_draw 
-  :: (Ptr RawTFile) -> CString -> IO ()
-foreign import ccall "HROOT.h TFile_FindObject" c_tfile_findobject 
-  :: (Ptr RawTFile) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TFile_SaveAs" c_tfile_saveas 
-  :: (Ptr RawTFile) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TFile_Write" c_tfile_write 
-  :: (Ptr RawTFile) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TFile_delete" c_tfile_delete 
-  :: (Ptr RawTFile) -> IO ()
-foreign import ccall "HROOT.h TFile_newTFile" c_tfile_newtfile 
-  :: CString -> CString -> CString -> CInt -> IO (Ptr RawTFile)
-
-foreign import ccall "HROOT.h TBranch_SetTitle" c_tbranch_settitle 
-  :: (Ptr RawTBranch) -> CString -> IO ()
-foreign import ccall "HROOT.h TBranch_SetFillColor" c_tbranch_setfillcolor 
-  :: (Ptr RawTBranch) -> CInt -> IO ()
-foreign import ccall "HROOT.h TBranch_SetFillStyle" c_tbranch_setfillstyle 
-  :: (Ptr RawTBranch) -> CInt -> IO ()
-foreign import ccall "HROOT.h TBranch_GetName" c_tbranch_getname 
-  :: (Ptr RawTBranch) -> IO CString
-foreign import ccall "HROOT.h TBranch_Draw" c_tbranch_draw 
-  :: (Ptr RawTBranch) -> CString -> IO ()
-foreign import ccall "HROOT.h TBranch_FindObject" c_tbranch_findobject 
-  :: (Ptr RawTBranch) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TBranch_SaveAs" c_tbranch_saveas 
-  :: (Ptr RawTBranch) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TBranch_Write" c_tbranch_write 
-  :: (Ptr RawTBranch) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TBranch_delete" c_tbranch_delete 
-  :: (Ptr RawTBranch) -> IO ()
-
-foreign import ccall "HROOT.h TVirtualTreePlayer_GetName" c_tvirtualtreeplayer_getname 
-  :: (Ptr RawTVirtualTreePlayer) -> IO CString
-foreign import ccall "HROOT.h TVirtualTreePlayer_Draw" c_tvirtualtreeplayer_draw 
-  :: (Ptr RawTVirtualTreePlayer) -> CString -> IO ()
-foreign import ccall "HROOT.h TVirtualTreePlayer_FindObject" c_tvirtualtreeplayer_findobject 
-  :: (Ptr RawTVirtualTreePlayer) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TVirtualTreePlayer_SaveAs" c_tvirtualtreeplayer_saveas 
-  :: (Ptr RawTVirtualTreePlayer) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TVirtualTreePlayer_Write" c_tvirtualtreeplayer_write 
-  :: (Ptr RawTVirtualTreePlayer) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TVirtualTreePlayer_delete" c_tvirtualtreeplayer_delete 
-  :: (Ptr RawTVirtualTreePlayer) -> IO ()
-
-foreign import ccall "HROOT.h TTreePlayer_GetName" c_ttreeplayer_getname 
-  :: (Ptr RawTTreePlayer) -> IO CString
-foreign import ccall "HROOT.h TTreePlayer_Draw" c_ttreeplayer_draw 
-  :: (Ptr RawTTreePlayer) -> CString -> IO ()
-foreign import ccall "HROOT.h TTreePlayer_FindObject" c_ttreeplayer_findobject 
-  :: (Ptr RawTTreePlayer) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TTreePlayer_SaveAs" c_ttreeplayer_saveas 
-  :: (Ptr RawTTreePlayer) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TTreePlayer_Write" c_ttreeplayer_write 
-  :: (Ptr RawTTreePlayer) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TTreePlayer_delete" c_ttreeplayer_delete 
-  :: (Ptr RawTTreePlayer) -> IO ()
-
-foreign import ccall "HROOT.h TArray_delete" c_tarray_delete 
-  :: (Ptr RawTArray) -> IO ()
-
-foreign import ccall "HROOT.h TArrayC_delete" c_tarrayc_delete 
-  :: (Ptr RawTArrayC) -> IO ()
-
-foreign import ccall "HROOT.h TArrayD_delete" c_tarrayd_delete 
-  :: (Ptr RawTArrayD) -> IO ()
-
-foreign import ccall "HROOT.h TArrayF_delete" c_tarrayf_delete 
-  :: (Ptr RawTArrayF) -> IO ()
-
-foreign import ccall "HROOT.h TArrayI_delete" c_tarrayi_delete 
-  :: (Ptr RawTArrayI) -> IO ()
-
-foreign import ccall "HROOT.h TArrayL_delete" c_tarrayl_delete 
-  :: (Ptr RawTArrayL) -> IO ()
-
-foreign import ccall "HROOT.h TArrayL64_delete" c_tarrayl64_delete 
-  :: (Ptr RawTArrayL64) -> IO ()
-
-foreign import ccall "HROOT.h TArrayS_delete" c_tarrays_delete 
-  :: (Ptr RawTArrayS) -> IO ()
-
-foreign import ccall "HROOT.h TH1_SetTitle" c_th1_settitle 
-  :: (Ptr RawTH1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1_SetLineColor" c_th1_setlinecolor 
-  :: (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1_SetFillColor" c_th1_setfillcolor 
-  :: (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1_SetFillStyle" c_th1_setfillstyle 
-  :: (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1_GetName" c_th1_getname 
-  :: (Ptr RawTH1) -> IO CString
-foreign import ccall "HROOT.h TH1_Draw" c_th1_draw 
-  :: (Ptr RawTH1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1_FindObject" c_th1_findobject 
-  :: (Ptr RawTH1) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH1_SaveAs" c_th1_saveas 
-  :: (Ptr RawTH1) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH1_Write" c_th1_write 
-  :: (Ptr RawTH1) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1_delete" c_th1_delete 
-  :: (Ptr RawTH1) -> IO ()
-foreign import ccall "HROOT.h TH1_Add" c_th1_add 
-  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1_AddBinContent" c_th1_addbincontent 
-  :: (Ptr RawTH1) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1_Chi2Test" c_th1_chi2test 
-  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH1_ComputeIntegral" c_th1_computeintegral 
-  :: (Ptr RawTH1) -> IO CDouble
-foreign import ccall "HROOT.h TH1_DirectoryAutoAdd" c_th1_directoryautoadd 
-  :: (Ptr RawTH1) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH1_DistancetoPrimitive" c_th1_distancetoprimitive 
-  :: (Ptr RawTH1) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1_Divide" c_th1_divide 
-  :: (Ptr RawTH1) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH1_DrawCopy" c_th1_drawcopy 
-  :: (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1_DrawNormalized" c_th1_drawnormalized 
-  :: (Ptr RawTH1) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1_DrawPanel" c_th1_drawpanel 
-  :: (Ptr RawTH1) -> IO ()
-foreign import ccall "HROOT.h TH1_BufferEmpty" c_th1_bufferempty 
-  :: (Ptr RawTH1) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1_Eval" c_th1_eval 
-  :: (Ptr RawTH1) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1_ExecuteEvent" c_th1_executeevent 
-  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1_FFT" c_th1_fft 
-  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1_fill1" c_th1_fill1 
-  :: (Ptr RawTH1) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1_FillN" c_th1_filln 
-  :: (Ptr RawTH1) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1_FillRandom" c_th1_fillrandom 
-  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1_FindBin" c_th1_findbin 
-  :: (Ptr RawTH1) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1_FindFixBin" c_th1_findfixbin 
-  :: (Ptr RawTH1) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1_FindFirstBinAbove" c_th1_findfirstbinabove 
-  :: (Ptr RawTH1) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1_FindLastBinAbove" c_th1_findlastbinabove 
-  :: (Ptr RawTH1) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1_FitPanel" c_th1_fitpanel 
-  :: (Ptr RawTH1) -> IO ()
-foreign import ccall "HROOT.h TH1_tH1GetAsymmetry" c_th1_th1getasymmetry 
-  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1_tH1GetBufferLength" c_th1_th1getbufferlength 
-  :: (Ptr RawTH1) -> IO CInt
-foreign import ccall "HROOT.h TH1_tH1GetBufferSize" c_th1_th1getbuffersize 
-  :: (Ptr RawTH1) -> IO CInt
-foreign import ccall "HROOT.h TH1_GetNdivisions" c_th1_getndivisions 
-  :: (Ptr RawTH1) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1_GetAxisColor" c_th1_getaxiscolor 
-  :: (Ptr RawTH1) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1_GetLabelColor" c_th1_getlabelcolor 
-  :: (Ptr RawTH1) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1_GetLabelFont" c_th1_getlabelfont 
-  :: (Ptr RawTH1) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1_GetLabelOffset" c_th1_getlabeloffset 
-  :: (Ptr RawTH1) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetLabelSize" c_th1_getlabelsize 
-  :: (Ptr RawTH1) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetTitleFont" c_th1_gettitlefont 
-  :: (Ptr RawTH1) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1_GetTitleOffset" c_th1_gettitleoffset 
-  :: (Ptr RawTH1) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetTitleSize" c_th1_gettitlesize 
-  :: (Ptr RawTH1) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetTickLength" c_th1_getticklength 
-  :: (Ptr RawTH1) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBarOffset" c_th1_getbaroffset 
-  :: (Ptr RawTH1) -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBarWidth" c_th1_getbarwidth 
-  :: (Ptr RawTH1) -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetContour" c_th1_getcontour 
-  :: (Ptr RawTH1) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH1_GetContourLevel" c_th1_getcontourlevel 
-  :: (Ptr RawTH1) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetContourLevelPad" c_th1_getcontourlevelpad 
-  :: (Ptr RawTH1) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBin" c_th1_getbin 
-  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1_GetBinCenter" c_th1_getbincenter 
-  :: (Ptr RawTH1) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBinContent1" c_th1_getbincontent1 
-  :: (Ptr RawTH1) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBinContent2" c_th1_getbincontent2 
-  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBinContent3" c_th1_getbincontent3 
-  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBinError1" c_th1_getbinerror1 
-  :: (Ptr RawTH1) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBinError2" c_th1_getbinerror2 
-  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBinError3" c_th1_getbinerror3 
-  :: (Ptr RawTH1) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBinLowEdge" c_th1_getbinlowedge 
-  :: (Ptr RawTH1) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetBinWidth" c_th1_getbinwidth 
-  :: (Ptr RawTH1) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetCellContent" c_th1_getcellcontent 
-  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_GetCellError" c_th1_getcellerror 
-  :: (Ptr RawTH1) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1_tH1GetDirectory" c_th1_th1getdirectory 
-  :: (Ptr RawTH1) -> IO (Ptr RawTDirectory)
-foreign import ccall "HROOT.h TH1_tH1GetXaxis" c_th1_th1getxaxis 
-  :: (Ptr RawTH1) -> IO (Ptr RawTAxis)
-foreign import ccall "HROOT.h TH1_tH1GetYaxis" c_th1_th1getyaxis 
-  :: (Ptr RawTH1) -> IO (Ptr RawTAxis)
-foreign import ccall "HROOT.h TH1_tH1GetZaxis" c_th1_th1getzaxis 
-  :: (Ptr RawTH1) -> IO (Ptr RawTAxis)
-
-foreign import ccall "HROOT.h TH2_Add" c_th2_add 
-  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2_AddBinContent" c_th2_addbincontent 
-  :: (Ptr RawTH2) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2_Chi2Test" c_th2_chi2test 
-  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH2_ComputeIntegral" c_th2_computeintegral 
-  :: (Ptr RawTH2) -> IO CDouble
-foreign import ccall "HROOT.h TH2_DirectoryAutoAdd" c_th2_directoryautoadd 
-  :: (Ptr RawTH2) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH2_DistancetoPrimitive" c_th2_distancetoprimitive 
-  :: (Ptr RawTH2) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2_Divide" c_th2_divide 
-  :: (Ptr RawTH2) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH2_DrawCopy" c_th2_drawcopy 
-  :: (Ptr RawTH2) -> CString -> IO (Ptr RawTH2)
-foreign import ccall "HROOT.h TH2_DrawNormalized" c_th2_drawnormalized 
-  :: (Ptr RawTH2) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2_DrawPanel" c_th2_drawpanel 
-  :: (Ptr RawTH2) -> IO ()
-foreign import ccall "HROOT.h TH2_BufferEmpty" c_th2_bufferempty 
-  :: (Ptr RawTH2) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2_Eval" c_th2_eval 
-  :: (Ptr RawTH2) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2_ExecuteEvent" c_th2_executeevent 
-  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2_FFT" c_th2_fft 
-  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2_fill1" c_th2_fill1 
-  :: (Ptr RawTH2) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2_FillN" c_th2_filln 
-  :: (Ptr RawTH2) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2_FillRandom" c_th2_fillrandom 
-  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2_FindBin" c_th2_findbin 
-  :: (Ptr RawTH2) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2_FindFixBin" c_th2_findfixbin 
-  :: (Ptr RawTH2) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2_FindFirstBinAbove" c_th2_findfirstbinabove 
-  :: (Ptr RawTH2) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2_FindLastBinAbove" c_th2_findlastbinabove 
-  :: (Ptr RawTH2) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2_FitPanel" c_th2_fitpanel 
-  :: (Ptr RawTH2) -> IO ()
-foreign import ccall "HROOT.h TH2_GetNdivisions" c_th2_getndivisions 
-  :: (Ptr RawTH2) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2_GetAxisColor" c_th2_getaxiscolor 
-  :: (Ptr RawTH2) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2_GetLabelColor" c_th2_getlabelcolor 
-  :: (Ptr RawTH2) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2_GetLabelFont" c_th2_getlabelfont 
-  :: (Ptr RawTH2) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2_GetLabelOffset" c_th2_getlabeloffset 
-  :: (Ptr RawTH2) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetLabelSize" c_th2_getlabelsize 
-  :: (Ptr RawTH2) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetTitleFont" c_th2_gettitlefont 
-  :: (Ptr RawTH2) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2_GetTitleOffset" c_th2_gettitleoffset 
-  :: (Ptr RawTH2) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetTitleSize" c_th2_gettitlesize 
-  :: (Ptr RawTH2) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetTickLength" c_th2_getticklength 
-  :: (Ptr RawTH2) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBarOffset" c_th2_getbaroffset 
-  :: (Ptr RawTH2) -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBarWidth" c_th2_getbarwidth 
-  :: (Ptr RawTH2) -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetContour" c_th2_getcontour 
-  :: (Ptr RawTH2) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH2_GetContourLevel" c_th2_getcontourlevel 
-  :: (Ptr RawTH2) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetContourLevelPad" c_th2_getcontourlevelpad 
-  :: (Ptr RawTH2) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBin" c_th2_getbin 
-  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2_GetBinCenter" c_th2_getbincenter 
-  :: (Ptr RawTH2) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBinContent1" c_th2_getbincontent1 
-  :: (Ptr RawTH2) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBinContent2" c_th2_getbincontent2 
-  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBinContent3" c_th2_getbincontent3 
-  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBinError1" c_th2_getbinerror1 
-  :: (Ptr RawTH2) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBinError2" c_th2_getbinerror2 
-  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBinError3" c_th2_getbinerror3 
-  :: (Ptr RawTH2) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBinLowEdge" c_th2_getbinlowedge 
-  :: (Ptr RawTH2) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetBinWidth" c_th2_getbinwidth 
-  :: (Ptr RawTH2) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetCellContent" c_th2_getcellcontent 
-  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_GetCellError" c_th2_getcellerror 
-  :: (Ptr RawTH2) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2_SetTitle" c_th2_settitle 
-  :: (Ptr RawTH2) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2_SetLineColor" c_th2_setlinecolor 
-  :: (Ptr RawTH2) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2_SetFillColor" c_th2_setfillcolor 
-  :: (Ptr RawTH2) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2_SetFillStyle" c_th2_setfillstyle 
-  :: (Ptr RawTH2) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2_GetName" c_th2_getname 
-  :: (Ptr RawTH2) -> IO CString
-foreign import ccall "HROOT.h TH2_Draw" c_th2_draw 
-  :: (Ptr RawTH2) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2_FindObject" c_th2_findobject 
-  :: (Ptr RawTH2) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH2_SaveAs" c_th2_saveas 
-  :: (Ptr RawTH2) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH2_Write" c_th2_write 
-  :: (Ptr RawTH2) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2_delete" c_th2_delete 
-  :: (Ptr RawTH2) -> IO ()
-foreign import ccall "HROOT.h TH2_fill2" c_th2_fill2 
-  :: (Ptr RawTH2) -> CDouble -> CDouble -> IO CInt
-
-foreign import ccall "HROOT.h TH3_Add" c_th3_add 
-  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3_AddBinContent" c_th3_addbincontent 
-  :: (Ptr RawTH3) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3_Chi2Test" c_th3_chi2test 
-  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH3_ComputeIntegral" c_th3_computeintegral 
-  :: (Ptr RawTH3) -> IO CDouble
-foreign import ccall "HROOT.h TH3_DirectoryAutoAdd" c_th3_directoryautoadd 
-  :: (Ptr RawTH3) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH3_DistancetoPrimitive" c_th3_distancetoprimitive 
-  :: (Ptr RawTH3) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3_Divide" c_th3_divide 
-  :: (Ptr RawTH3) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH3_DrawCopy" c_th3_drawcopy 
-  :: (Ptr RawTH3) -> CString -> IO (Ptr RawTH3)
-foreign import ccall "HROOT.h TH3_DrawNormalized" c_th3_drawnormalized 
-  :: (Ptr RawTH3) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3_DrawPanel" c_th3_drawpanel 
-  :: (Ptr RawTH3) -> IO ()
-foreign import ccall "HROOT.h TH3_BufferEmpty" c_th3_bufferempty 
-  :: (Ptr RawTH3) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3_Eval" c_th3_eval 
-  :: (Ptr RawTH3) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3_ExecuteEvent" c_th3_executeevent 
-  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3_FFT" c_th3_fft 
-  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3_fill1" c_th3_fill1 
-  :: (Ptr RawTH3) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3_FillN" c_th3_filln 
-  :: (Ptr RawTH3) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3_FillRandom" c_th3_fillrandom 
-  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3_FindBin" c_th3_findbin 
-  :: (Ptr RawTH3) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3_FindFixBin" c_th3_findfixbin 
-  :: (Ptr RawTH3) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3_FindFirstBinAbove" c_th3_findfirstbinabove 
-  :: (Ptr RawTH3) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3_FindLastBinAbove" c_th3_findlastbinabove 
-  :: (Ptr RawTH3) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3_FitPanel" c_th3_fitpanel 
-  :: (Ptr RawTH3) -> IO ()
-foreign import ccall "HROOT.h TH3_GetNdivisions" c_th3_getndivisions 
-  :: (Ptr RawTH3) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3_GetAxisColor" c_th3_getaxiscolor 
-  :: (Ptr RawTH3) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3_GetLabelColor" c_th3_getlabelcolor 
-  :: (Ptr RawTH3) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3_GetLabelFont" c_th3_getlabelfont 
-  :: (Ptr RawTH3) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3_GetLabelOffset" c_th3_getlabeloffset 
-  :: (Ptr RawTH3) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetLabelSize" c_th3_getlabelsize 
-  :: (Ptr RawTH3) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetTitleFont" c_th3_gettitlefont 
-  :: (Ptr RawTH3) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3_GetTitleOffset" c_th3_gettitleoffset 
-  :: (Ptr RawTH3) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetTitleSize" c_th3_gettitlesize 
-  :: (Ptr RawTH3) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetTickLength" c_th3_getticklength 
-  :: (Ptr RawTH3) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBarOffset" c_th3_getbaroffset 
-  :: (Ptr RawTH3) -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBarWidth" c_th3_getbarwidth 
-  :: (Ptr RawTH3) -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetContour" c_th3_getcontour 
-  :: (Ptr RawTH3) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH3_GetContourLevel" c_th3_getcontourlevel 
-  :: (Ptr RawTH3) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetContourLevelPad" c_th3_getcontourlevelpad 
-  :: (Ptr RawTH3) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBin" c_th3_getbin 
-  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3_GetBinCenter" c_th3_getbincenter 
-  :: (Ptr RawTH3) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBinContent1" c_th3_getbincontent1 
-  :: (Ptr RawTH3) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBinContent2" c_th3_getbincontent2 
-  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBinContent3" c_th3_getbincontent3 
-  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBinError1" c_th3_getbinerror1 
-  :: (Ptr RawTH3) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBinError2" c_th3_getbinerror2 
-  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBinError3" c_th3_getbinerror3 
-  :: (Ptr RawTH3) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBinLowEdge" c_th3_getbinlowedge 
-  :: (Ptr RawTH3) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetBinWidth" c_th3_getbinwidth 
-  :: (Ptr RawTH3) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetCellContent" c_th3_getcellcontent 
-  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_GetCellError" c_th3_getcellerror 
-  :: (Ptr RawTH3) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3_SetTitle" c_th3_settitle 
-  :: (Ptr RawTH3) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3_SetLineColor" c_th3_setlinecolor 
-  :: (Ptr RawTH3) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3_SetFillColor" c_th3_setfillcolor 
-  :: (Ptr RawTH3) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3_SetFillStyle" c_th3_setfillstyle 
-  :: (Ptr RawTH3) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3_GetName" c_th3_getname 
-  :: (Ptr RawTH3) -> IO CString
-foreign import ccall "HROOT.h TH3_Draw" c_th3_draw 
-  :: (Ptr RawTH3) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3_FindObject" c_th3_findobject 
-  :: (Ptr RawTH3) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH3_SaveAs" c_th3_saveas 
-  :: (Ptr RawTH3) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH3_Write" c_th3_write 
-  :: (Ptr RawTH3) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3_delete" c_th3_delete 
-  :: (Ptr RawTH3) -> IO ()
-
-foreign import ccall "HROOT.h TH1C_Add" c_th1c_add 
-  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1C_AddBinContent" c_th1c_addbincontent 
-  :: (Ptr RawTH1C) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1C_Chi2Test" c_th1c_chi2test 
-  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH1C_ComputeIntegral" c_th1c_computeintegral 
-  :: (Ptr RawTH1C) -> IO CDouble
-foreign import ccall "HROOT.h TH1C_DirectoryAutoAdd" c_th1c_directoryautoadd 
-  :: (Ptr RawTH1C) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH1C_DistancetoPrimitive" c_th1c_distancetoprimitive 
-  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1C_Divide" c_th1c_divide 
-  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH1C_DrawCopy" c_th1c_drawcopy 
-  :: (Ptr RawTH1C) -> CString -> IO (Ptr RawTH1C)
-foreign import ccall "HROOT.h TH1C_DrawNormalized" c_th1c_drawnormalized 
-  :: (Ptr RawTH1C) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1C_DrawPanel" c_th1c_drawpanel 
-  :: (Ptr RawTH1C) -> IO ()
-foreign import ccall "HROOT.h TH1C_BufferEmpty" c_th1c_bufferempty 
-  :: (Ptr RawTH1C) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1C_Eval" c_th1c_eval 
-  :: (Ptr RawTH1C) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1C_ExecuteEvent" c_th1c_executeevent 
-  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1C_FFT" c_th1c_fft 
-  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1C_fill1" c_th1c_fill1 
-  :: (Ptr RawTH1C) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1C_FillN" c_th1c_filln 
-  :: (Ptr RawTH1C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1C_FillRandom" c_th1c_fillrandom 
-  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1C_FindBin" c_th1c_findbin 
-  :: (Ptr RawTH1C) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1C_FindFixBin" c_th1c_findfixbin 
-  :: (Ptr RawTH1C) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1C_FindFirstBinAbove" c_th1c_findfirstbinabove 
-  :: (Ptr RawTH1C) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1C_FindLastBinAbove" c_th1c_findlastbinabove 
-  :: (Ptr RawTH1C) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1C_FitPanel" c_th1c_fitpanel 
-  :: (Ptr RawTH1C) -> IO ()
-foreign import ccall "HROOT.h TH1C_GetNdivisions" c_th1c_getndivisions 
-  :: (Ptr RawTH1C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1C_GetAxisColor" c_th1c_getaxiscolor 
-  :: (Ptr RawTH1C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1C_GetLabelColor" c_th1c_getlabelcolor 
-  :: (Ptr RawTH1C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1C_GetLabelFont" c_th1c_getlabelfont 
-  :: (Ptr RawTH1C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1C_GetLabelOffset" c_th1c_getlabeloffset 
-  :: (Ptr RawTH1C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetLabelSize" c_th1c_getlabelsize 
-  :: (Ptr RawTH1C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetTitleFont" c_th1c_gettitlefont 
-  :: (Ptr RawTH1C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1C_GetTitleOffset" c_th1c_gettitleoffset 
-  :: (Ptr RawTH1C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetTitleSize" c_th1c_gettitlesize 
-  :: (Ptr RawTH1C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetTickLength" c_th1c_getticklength 
-  :: (Ptr RawTH1C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBarOffset" c_th1c_getbaroffset 
-  :: (Ptr RawTH1C) -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBarWidth" c_th1c_getbarwidth 
-  :: (Ptr RawTH1C) -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetContour" c_th1c_getcontour 
-  :: (Ptr RawTH1C) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH1C_GetContourLevel" c_th1c_getcontourlevel 
-  :: (Ptr RawTH1C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetContourLevelPad" c_th1c_getcontourlevelpad 
-  :: (Ptr RawTH1C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBin" c_th1c_getbin 
-  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1C_GetBinCenter" c_th1c_getbincenter 
-  :: (Ptr RawTH1C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBinContent1" c_th1c_getbincontent1 
-  :: (Ptr RawTH1C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBinContent2" c_th1c_getbincontent2 
-  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBinContent3" c_th1c_getbincontent3 
-  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBinError1" c_th1c_getbinerror1 
-  :: (Ptr RawTH1C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBinError2" c_th1c_getbinerror2 
-  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBinError3" c_th1c_getbinerror3 
-  :: (Ptr RawTH1C) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBinLowEdge" c_th1c_getbinlowedge 
-  :: (Ptr RawTH1C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetBinWidth" c_th1c_getbinwidth 
-  :: (Ptr RawTH1C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetCellContent" c_th1c_getcellcontent 
-  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_GetCellError" c_th1c_getcellerror 
-  :: (Ptr RawTH1C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1C_SetTitle" c_th1c_settitle 
-  :: (Ptr RawTH1C) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1C_SetLineColor" c_th1c_setlinecolor 
-  :: (Ptr RawTH1C) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1C_SetFillColor" c_th1c_setfillcolor 
-  :: (Ptr RawTH1C) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1C_SetFillStyle" c_th1c_setfillstyle 
-  :: (Ptr RawTH1C) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1C_GetName" c_th1c_getname 
-  :: (Ptr RawTH1C) -> IO CString
-foreign import ccall "HROOT.h TH1C_Draw" c_th1c_draw 
-  :: (Ptr RawTH1C) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1C_FindObject" c_th1c_findobject 
-  :: (Ptr RawTH1C) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH1C_SaveAs" c_th1c_saveas 
-  :: (Ptr RawTH1C) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH1C_Write" c_th1c_write 
-  :: (Ptr RawTH1C) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1C_delete" c_th1c_delete 
-  :: (Ptr RawTH1C) -> IO ()
-
-foreign import ccall "HROOT.h TH1D_Add" c_th1d_add 
-  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1D_AddBinContent" c_th1d_addbincontent 
-  :: (Ptr RawTH1D) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1D_Chi2Test" c_th1d_chi2test 
-  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH1D_ComputeIntegral" c_th1d_computeintegral 
-  :: (Ptr RawTH1D) -> IO CDouble
-foreign import ccall "HROOT.h TH1D_DirectoryAutoAdd" c_th1d_directoryautoadd 
-  :: (Ptr RawTH1D) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH1D_DistancetoPrimitive" c_th1d_distancetoprimitive 
-  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1D_Divide" c_th1d_divide 
-  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH1D_DrawCopy" c_th1d_drawcopy 
-  :: (Ptr RawTH1D) -> CString -> IO (Ptr RawTH1D)
-foreign import ccall "HROOT.h TH1D_DrawNormalized" c_th1d_drawnormalized 
-  :: (Ptr RawTH1D) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1D_DrawPanel" c_th1d_drawpanel 
-  :: (Ptr RawTH1D) -> IO ()
-foreign import ccall "HROOT.h TH1D_BufferEmpty" c_th1d_bufferempty 
-  :: (Ptr RawTH1D) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1D_Eval" c_th1d_eval 
-  :: (Ptr RawTH1D) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1D_ExecuteEvent" c_th1d_executeevent 
-  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1D_FFT" c_th1d_fft 
-  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1D_fill1" c_th1d_fill1 
-  :: (Ptr RawTH1D) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1D_FillN" c_th1d_filln 
-  :: (Ptr RawTH1D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1D_FillRandom" c_th1d_fillrandom 
-  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1D_FindBin" c_th1d_findbin 
-  :: (Ptr RawTH1D) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1D_FindFixBin" c_th1d_findfixbin 
-  :: (Ptr RawTH1D) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1D_FindFirstBinAbove" c_th1d_findfirstbinabove 
-  :: (Ptr RawTH1D) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1D_FindLastBinAbove" c_th1d_findlastbinabove 
-  :: (Ptr RawTH1D) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1D_FitPanel" c_th1d_fitpanel 
-  :: (Ptr RawTH1D) -> IO ()
-foreign import ccall "HROOT.h TH1D_GetNdivisions" c_th1d_getndivisions 
-  :: (Ptr RawTH1D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1D_GetAxisColor" c_th1d_getaxiscolor 
-  :: (Ptr RawTH1D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1D_GetLabelColor" c_th1d_getlabelcolor 
-  :: (Ptr RawTH1D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1D_GetLabelFont" c_th1d_getlabelfont 
-  :: (Ptr RawTH1D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1D_GetLabelOffset" c_th1d_getlabeloffset 
-  :: (Ptr RawTH1D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetLabelSize" c_th1d_getlabelsize 
-  :: (Ptr RawTH1D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetTitleFont" c_th1d_gettitlefont 
-  :: (Ptr RawTH1D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1D_GetTitleOffset" c_th1d_gettitleoffset 
-  :: (Ptr RawTH1D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetTitleSize" c_th1d_gettitlesize 
-  :: (Ptr RawTH1D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetTickLength" c_th1d_getticklength 
-  :: (Ptr RawTH1D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBarOffset" c_th1d_getbaroffset 
-  :: (Ptr RawTH1D) -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBarWidth" c_th1d_getbarwidth 
-  :: (Ptr RawTH1D) -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetContour" c_th1d_getcontour 
-  :: (Ptr RawTH1D) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH1D_GetContourLevel" c_th1d_getcontourlevel 
-  :: (Ptr RawTH1D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetContourLevelPad" c_th1d_getcontourlevelpad 
-  :: (Ptr RawTH1D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBin" c_th1d_getbin 
-  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1D_GetBinCenter" c_th1d_getbincenter 
-  :: (Ptr RawTH1D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBinContent1" c_th1d_getbincontent1 
-  :: (Ptr RawTH1D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBinContent2" c_th1d_getbincontent2 
-  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBinContent3" c_th1d_getbincontent3 
-  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBinError1" c_th1d_getbinerror1 
-  :: (Ptr RawTH1D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBinError2" c_th1d_getbinerror2 
-  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBinError3" c_th1d_getbinerror3 
-  :: (Ptr RawTH1D) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBinLowEdge" c_th1d_getbinlowedge 
-  :: (Ptr RawTH1D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetBinWidth" c_th1d_getbinwidth 
-  :: (Ptr RawTH1D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetCellContent" c_th1d_getcellcontent 
-  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_GetCellError" c_th1d_getcellerror 
-  :: (Ptr RawTH1D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1D_SetTitle" c_th1d_settitle 
-  :: (Ptr RawTH1D) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1D_SetLineColor" c_th1d_setlinecolor 
-  :: (Ptr RawTH1D) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1D_SetFillColor" c_th1d_setfillcolor 
-  :: (Ptr RawTH1D) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1D_SetFillStyle" c_th1d_setfillstyle 
-  :: (Ptr RawTH1D) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1D_GetName" c_th1d_getname 
-  :: (Ptr RawTH1D) -> IO CString
-foreign import ccall "HROOT.h TH1D_Draw" c_th1d_draw 
-  :: (Ptr RawTH1D) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1D_FindObject" c_th1d_findobject 
-  :: (Ptr RawTH1D) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH1D_SaveAs" c_th1d_saveas 
-  :: (Ptr RawTH1D) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH1D_Write" c_th1d_write 
-  :: (Ptr RawTH1D) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1D_delete" c_th1d_delete 
-  :: (Ptr RawTH1D) -> IO ()
-
-foreign import ccall "HROOT.h TH1F_Add" c_th1f_add 
-  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1F_AddBinContent" c_th1f_addbincontent 
-  :: (Ptr RawTH1F) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1F_Chi2Test" c_th1f_chi2test 
-  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH1F_ComputeIntegral" c_th1f_computeintegral 
-  :: (Ptr RawTH1F) -> IO CDouble
-foreign import ccall "HROOT.h TH1F_DirectoryAutoAdd" c_th1f_directoryautoadd 
-  :: (Ptr RawTH1F) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH1F_DistancetoPrimitive" c_th1f_distancetoprimitive 
-  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1F_Divide" c_th1f_divide 
-  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH1F_DrawCopy" c_th1f_drawcopy 
-  :: (Ptr RawTH1F) -> CString -> IO (Ptr RawTH1F)
-foreign import ccall "HROOT.h TH1F_DrawNormalized" c_th1f_drawnormalized 
-  :: (Ptr RawTH1F) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1F_DrawPanel" c_th1f_drawpanel 
-  :: (Ptr RawTH1F) -> IO ()
-foreign import ccall "HROOT.h TH1F_BufferEmpty" c_th1f_bufferempty 
-  :: (Ptr RawTH1F) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1F_Eval" c_th1f_eval 
-  :: (Ptr RawTH1F) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1F_ExecuteEvent" c_th1f_executeevent 
-  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1F_FFT" c_th1f_fft 
-  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1F_fill1" c_th1f_fill1 
-  :: (Ptr RawTH1F) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1F_FillN" c_th1f_filln 
-  :: (Ptr RawTH1F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1F_FillRandom" c_th1f_fillrandom 
-  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1F_FindBin" c_th1f_findbin 
-  :: (Ptr RawTH1F) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1F_FindFixBin" c_th1f_findfixbin 
-  :: (Ptr RawTH1F) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1F_FindFirstBinAbove" c_th1f_findfirstbinabove 
-  :: (Ptr RawTH1F) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1F_FindLastBinAbove" c_th1f_findlastbinabove 
-  :: (Ptr RawTH1F) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1F_FitPanel" c_th1f_fitpanel 
-  :: (Ptr RawTH1F) -> IO ()
-foreign import ccall "HROOT.h TH1F_GetNdivisions" c_th1f_getndivisions 
-  :: (Ptr RawTH1F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1F_GetAxisColor" c_th1f_getaxiscolor 
-  :: (Ptr RawTH1F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1F_GetLabelColor" c_th1f_getlabelcolor 
-  :: (Ptr RawTH1F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1F_GetLabelFont" c_th1f_getlabelfont 
-  :: (Ptr RawTH1F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1F_GetLabelOffset" c_th1f_getlabeloffset 
-  :: (Ptr RawTH1F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetLabelSize" c_th1f_getlabelsize 
-  :: (Ptr RawTH1F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetTitleFont" c_th1f_gettitlefont 
-  :: (Ptr RawTH1F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1F_GetTitleOffset" c_th1f_gettitleoffset 
-  :: (Ptr RawTH1F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetTitleSize" c_th1f_gettitlesize 
-  :: (Ptr RawTH1F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetTickLength" c_th1f_getticklength 
-  :: (Ptr RawTH1F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBarOffset" c_th1f_getbaroffset 
-  :: (Ptr RawTH1F) -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBarWidth" c_th1f_getbarwidth 
-  :: (Ptr RawTH1F) -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetContour" c_th1f_getcontour 
-  :: (Ptr RawTH1F) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH1F_GetContourLevel" c_th1f_getcontourlevel 
-  :: (Ptr RawTH1F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetContourLevelPad" c_th1f_getcontourlevelpad 
-  :: (Ptr RawTH1F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBin" c_th1f_getbin 
-  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1F_GetBinCenter" c_th1f_getbincenter 
-  :: (Ptr RawTH1F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBinContent1" c_th1f_getbincontent1 
-  :: (Ptr RawTH1F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBinContent2" c_th1f_getbincontent2 
-  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBinContent3" c_th1f_getbincontent3 
-  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBinError1" c_th1f_getbinerror1 
-  :: (Ptr RawTH1F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBinError2" c_th1f_getbinerror2 
-  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBinError3" c_th1f_getbinerror3 
-  :: (Ptr RawTH1F) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBinLowEdge" c_th1f_getbinlowedge 
-  :: (Ptr RawTH1F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetBinWidth" c_th1f_getbinwidth 
-  :: (Ptr RawTH1F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetCellContent" c_th1f_getcellcontent 
-  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_GetCellError" c_th1f_getcellerror 
-  :: (Ptr RawTH1F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1F_SetTitle" c_th1f_settitle 
-  :: (Ptr RawTH1F) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1F_SetLineColor" c_th1f_setlinecolor 
-  :: (Ptr RawTH1F) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1F_SetFillColor" c_th1f_setfillcolor 
-  :: (Ptr RawTH1F) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1F_SetFillStyle" c_th1f_setfillstyle 
-  :: (Ptr RawTH1F) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1F_GetName" c_th1f_getname 
-  :: (Ptr RawTH1F) -> IO CString
-foreign import ccall "HROOT.h TH1F_Draw" c_th1f_draw 
-  :: (Ptr RawTH1F) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1F_FindObject" c_th1f_findobject 
-  :: (Ptr RawTH1F) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH1F_SaveAs" c_th1f_saveas 
-  :: (Ptr RawTH1F) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH1F_Write" c_th1f_write 
-  :: (Ptr RawTH1F) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1F_delete" c_th1f_delete 
-  :: (Ptr RawTH1F) -> IO ()
-foreign import ccall "HROOT.h TH1F_newTH1F" c_th1f_newth1f 
-  :: CString -> CString -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH1F)
-
-foreign import ccall "HROOT.h TH1I_Add" c_th1i_add 
-  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1I_AddBinContent" c_th1i_addbincontent 
-  :: (Ptr RawTH1I) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1I_Chi2Test" c_th1i_chi2test 
-  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH1I_ComputeIntegral" c_th1i_computeintegral 
-  :: (Ptr RawTH1I) -> IO CDouble
-foreign import ccall "HROOT.h TH1I_DirectoryAutoAdd" c_th1i_directoryautoadd 
-  :: (Ptr RawTH1I) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH1I_DistancetoPrimitive" c_th1i_distancetoprimitive 
-  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1I_Divide" c_th1i_divide 
-  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH1I_DrawCopy" c_th1i_drawcopy 
-  :: (Ptr RawTH1I) -> CString -> IO (Ptr RawTH1I)
-foreign import ccall "HROOT.h TH1I_DrawNormalized" c_th1i_drawnormalized 
-  :: (Ptr RawTH1I) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1I_DrawPanel" c_th1i_drawpanel 
-  :: (Ptr RawTH1I) -> IO ()
-foreign import ccall "HROOT.h TH1I_BufferEmpty" c_th1i_bufferempty 
-  :: (Ptr RawTH1I) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1I_Eval" c_th1i_eval 
-  :: (Ptr RawTH1I) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1I_ExecuteEvent" c_th1i_executeevent 
-  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1I_FFT" c_th1i_fft 
-  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1I_fill1" c_th1i_fill1 
-  :: (Ptr RawTH1I) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1I_FillN" c_th1i_filln 
-  :: (Ptr RawTH1I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1I_FillRandom" c_th1i_fillrandom 
-  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1I_FindBin" c_th1i_findbin 
-  :: (Ptr RawTH1I) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1I_FindFixBin" c_th1i_findfixbin 
-  :: (Ptr RawTH1I) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1I_FindFirstBinAbove" c_th1i_findfirstbinabove 
-  :: (Ptr RawTH1I) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1I_FindLastBinAbove" c_th1i_findlastbinabove 
-  :: (Ptr RawTH1I) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1I_FitPanel" c_th1i_fitpanel 
-  :: (Ptr RawTH1I) -> IO ()
-foreign import ccall "HROOT.h TH1I_GetNdivisions" c_th1i_getndivisions 
-  :: (Ptr RawTH1I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1I_GetAxisColor" c_th1i_getaxiscolor 
-  :: (Ptr RawTH1I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1I_GetLabelColor" c_th1i_getlabelcolor 
-  :: (Ptr RawTH1I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1I_GetLabelFont" c_th1i_getlabelfont 
-  :: (Ptr RawTH1I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1I_GetLabelOffset" c_th1i_getlabeloffset 
-  :: (Ptr RawTH1I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetLabelSize" c_th1i_getlabelsize 
-  :: (Ptr RawTH1I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetTitleFont" c_th1i_gettitlefont 
-  :: (Ptr RawTH1I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1I_GetTitleOffset" c_th1i_gettitleoffset 
-  :: (Ptr RawTH1I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetTitleSize" c_th1i_gettitlesize 
-  :: (Ptr RawTH1I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetTickLength" c_th1i_getticklength 
-  :: (Ptr RawTH1I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBarOffset" c_th1i_getbaroffset 
-  :: (Ptr RawTH1I) -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBarWidth" c_th1i_getbarwidth 
-  :: (Ptr RawTH1I) -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetContour" c_th1i_getcontour 
-  :: (Ptr RawTH1I) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH1I_GetContourLevel" c_th1i_getcontourlevel 
-  :: (Ptr RawTH1I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetContourLevelPad" c_th1i_getcontourlevelpad 
-  :: (Ptr RawTH1I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBin" c_th1i_getbin 
-  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1I_GetBinCenter" c_th1i_getbincenter 
-  :: (Ptr RawTH1I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBinContent1" c_th1i_getbincontent1 
-  :: (Ptr RawTH1I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBinContent2" c_th1i_getbincontent2 
-  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBinContent3" c_th1i_getbincontent3 
-  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBinError1" c_th1i_getbinerror1 
-  :: (Ptr RawTH1I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBinError2" c_th1i_getbinerror2 
-  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBinError3" c_th1i_getbinerror3 
-  :: (Ptr RawTH1I) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBinLowEdge" c_th1i_getbinlowedge 
-  :: (Ptr RawTH1I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetBinWidth" c_th1i_getbinwidth 
-  :: (Ptr RawTH1I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetCellContent" c_th1i_getcellcontent 
-  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_GetCellError" c_th1i_getcellerror 
-  :: (Ptr RawTH1I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1I_SetTitle" c_th1i_settitle 
-  :: (Ptr RawTH1I) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1I_SetLineColor" c_th1i_setlinecolor 
-  :: (Ptr RawTH1I) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1I_SetFillColor" c_th1i_setfillcolor 
-  :: (Ptr RawTH1I) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1I_SetFillStyle" c_th1i_setfillstyle 
-  :: (Ptr RawTH1I) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1I_GetName" c_th1i_getname 
-  :: (Ptr RawTH1I) -> IO CString
-foreign import ccall "HROOT.h TH1I_Draw" c_th1i_draw 
-  :: (Ptr RawTH1I) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1I_FindObject" c_th1i_findobject 
-  :: (Ptr RawTH1I) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH1I_SaveAs" c_th1i_saveas 
-  :: (Ptr RawTH1I) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH1I_Write" c_th1i_write 
-  :: (Ptr RawTH1I) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1I_delete" c_th1i_delete 
-  :: (Ptr RawTH1I) -> IO ()
-
-foreign import ccall "HROOT.h TH1S_Add" c_th1s_add 
-  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1S_AddBinContent" c_th1s_addbincontent 
-  :: (Ptr RawTH1S) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH1S_Chi2Test" c_th1s_chi2test 
-  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH1S_ComputeIntegral" c_th1s_computeintegral 
-  :: (Ptr RawTH1S) -> IO CDouble
-foreign import ccall "HROOT.h TH1S_DirectoryAutoAdd" c_th1s_directoryautoadd 
-  :: (Ptr RawTH1S) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH1S_DistancetoPrimitive" c_th1s_distancetoprimitive 
-  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1S_Divide" c_th1s_divide 
-  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH1S_DrawCopy" c_th1s_drawcopy 
-  :: (Ptr RawTH1S) -> CString -> IO (Ptr RawTH1S)
-foreign import ccall "HROOT.h TH1S_DrawNormalized" c_th1s_drawnormalized 
-  :: (Ptr RawTH1S) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1S_DrawPanel" c_th1s_drawpanel 
-  :: (Ptr RawTH1S) -> IO ()
-foreign import ccall "HROOT.h TH1S_BufferEmpty" c_th1s_bufferempty 
-  :: (Ptr RawTH1S) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1S_Eval" c_th1s_eval 
-  :: (Ptr RawTH1S) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1S_ExecuteEvent" c_th1s_executeevent 
-  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1S_FFT" c_th1s_fft 
-  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH1S_fill1" c_th1s_fill1 
-  :: (Ptr RawTH1S) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1S_FillN" c_th1s_filln 
-  :: (Ptr RawTH1S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1S_FillRandom" c_th1s_fillrandom 
-  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1S_FindBin" c_th1s_findbin 
-  :: (Ptr RawTH1S) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1S_FindFixBin" c_th1s_findfixbin 
-  :: (Ptr RawTH1S) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH1S_FindFirstBinAbove" c_th1s_findfirstbinabove 
-  :: (Ptr RawTH1S) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1S_FindLastBinAbove" c_th1s_findlastbinabove 
-  :: (Ptr RawTH1S) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1S_FitPanel" c_th1s_fitpanel 
-  :: (Ptr RawTH1S) -> IO ()
-foreign import ccall "HROOT.h TH1S_GetNdivisions" c_th1s_getndivisions 
-  :: (Ptr RawTH1S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1S_GetAxisColor" c_th1s_getaxiscolor 
-  :: (Ptr RawTH1S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1S_GetLabelColor" c_th1s_getlabelcolor 
-  :: (Ptr RawTH1S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1S_GetLabelFont" c_th1s_getlabelfont 
-  :: (Ptr RawTH1S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1S_GetLabelOffset" c_th1s_getlabeloffset 
-  :: (Ptr RawTH1S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetLabelSize" c_th1s_getlabelsize 
-  :: (Ptr RawTH1S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetTitleFont" c_th1s_gettitlefont 
-  :: (Ptr RawTH1S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH1S_GetTitleOffset" c_th1s_gettitleoffset 
-  :: (Ptr RawTH1S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetTitleSize" c_th1s_gettitlesize 
-  :: (Ptr RawTH1S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetTickLength" c_th1s_getticklength 
-  :: (Ptr RawTH1S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBarOffset" c_th1s_getbaroffset 
-  :: (Ptr RawTH1S) -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBarWidth" c_th1s_getbarwidth 
-  :: (Ptr RawTH1S) -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetContour" c_th1s_getcontour 
-  :: (Ptr RawTH1S) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH1S_GetContourLevel" c_th1s_getcontourlevel 
-  :: (Ptr RawTH1S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetContourLevelPad" c_th1s_getcontourlevelpad 
-  :: (Ptr RawTH1S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBin" c_th1s_getbin 
-  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1S_GetBinCenter" c_th1s_getbincenter 
-  :: (Ptr RawTH1S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBinContent1" c_th1s_getbincontent1 
-  :: (Ptr RawTH1S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBinContent2" c_th1s_getbincontent2 
-  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBinContent3" c_th1s_getbincontent3 
-  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBinError1" c_th1s_getbinerror1 
-  :: (Ptr RawTH1S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBinError2" c_th1s_getbinerror2 
-  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBinError3" c_th1s_getbinerror3 
-  :: (Ptr RawTH1S) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBinLowEdge" c_th1s_getbinlowedge 
-  :: (Ptr RawTH1S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetBinWidth" c_th1s_getbinwidth 
-  :: (Ptr RawTH1S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetCellContent" c_th1s_getcellcontent 
-  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_GetCellError" c_th1s_getcellerror 
-  :: (Ptr RawTH1S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH1S_SetTitle" c_th1s_settitle 
-  :: (Ptr RawTH1S) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1S_SetLineColor" c_th1s_setlinecolor 
-  :: (Ptr RawTH1S) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1S_SetFillColor" c_th1s_setfillcolor 
-  :: (Ptr RawTH1S) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1S_SetFillStyle" c_th1s_setfillstyle 
-  :: (Ptr RawTH1S) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH1S_GetName" c_th1s_getname 
-  :: (Ptr RawTH1S) -> IO CString
-foreign import ccall "HROOT.h TH1S_Draw" c_th1s_draw 
-  :: (Ptr RawTH1S) -> CString -> IO ()
-foreign import ccall "HROOT.h TH1S_FindObject" c_th1s_findobject 
-  :: (Ptr RawTH1S) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH1S_SaveAs" c_th1s_saveas 
-  :: (Ptr RawTH1S) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH1S_Write" c_th1s_write 
-  :: (Ptr RawTH1S) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH1S_delete" c_th1s_delete 
-  :: (Ptr RawTH1S) -> IO ()
-
-foreign import ccall "HROOT.h TH2C_fill2" c_th2c_fill2 
-  :: (Ptr RawTH2C) -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2C_Add" c_th2c_add 
-  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2C_AddBinContent" c_th2c_addbincontent 
-  :: (Ptr RawTH2C) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2C_Chi2Test" c_th2c_chi2test 
-  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH2C_ComputeIntegral" c_th2c_computeintegral 
-  :: (Ptr RawTH2C) -> IO CDouble
-foreign import ccall "HROOT.h TH2C_DirectoryAutoAdd" c_th2c_directoryautoadd 
-  :: (Ptr RawTH2C) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH2C_DistancetoPrimitive" c_th2c_distancetoprimitive 
-  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2C_Divide" c_th2c_divide 
-  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH2C_DrawCopy" c_th2c_drawcopy 
-  :: (Ptr RawTH2C) -> CString -> IO (Ptr RawTH2C)
-foreign import ccall "HROOT.h TH2C_DrawNormalized" c_th2c_drawnormalized 
-  :: (Ptr RawTH2C) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2C_DrawPanel" c_th2c_drawpanel 
-  :: (Ptr RawTH2C) -> IO ()
-foreign import ccall "HROOT.h TH2C_BufferEmpty" c_th2c_bufferempty 
-  :: (Ptr RawTH2C) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2C_Eval" c_th2c_eval 
-  :: (Ptr RawTH2C) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2C_ExecuteEvent" c_th2c_executeevent 
-  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2C_FFT" c_th2c_fft 
-  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2C_fill1" c_th2c_fill1 
-  :: (Ptr RawTH2C) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2C_FillN" c_th2c_filln 
-  :: (Ptr RawTH2C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2C_FillRandom" c_th2c_fillrandom 
-  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2C_FindBin" c_th2c_findbin 
-  :: (Ptr RawTH2C) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2C_FindFixBin" c_th2c_findfixbin 
-  :: (Ptr RawTH2C) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2C_FindFirstBinAbove" c_th2c_findfirstbinabove 
-  :: (Ptr RawTH2C) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2C_FindLastBinAbove" c_th2c_findlastbinabove 
-  :: (Ptr RawTH2C) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2C_FitPanel" c_th2c_fitpanel 
-  :: (Ptr RawTH2C) -> IO ()
-foreign import ccall "HROOT.h TH2C_GetNdivisions" c_th2c_getndivisions 
-  :: (Ptr RawTH2C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2C_GetAxisColor" c_th2c_getaxiscolor 
-  :: (Ptr RawTH2C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2C_GetLabelColor" c_th2c_getlabelcolor 
-  :: (Ptr RawTH2C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2C_GetLabelFont" c_th2c_getlabelfont 
-  :: (Ptr RawTH2C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2C_GetLabelOffset" c_th2c_getlabeloffset 
-  :: (Ptr RawTH2C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetLabelSize" c_th2c_getlabelsize 
-  :: (Ptr RawTH2C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetTitleFont" c_th2c_gettitlefont 
-  :: (Ptr RawTH2C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2C_GetTitleOffset" c_th2c_gettitleoffset 
-  :: (Ptr RawTH2C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetTitleSize" c_th2c_gettitlesize 
-  :: (Ptr RawTH2C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetTickLength" c_th2c_getticklength 
-  :: (Ptr RawTH2C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBarOffset" c_th2c_getbaroffset 
-  :: (Ptr RawTH2C) -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBarWidth" c_th2c_getbarwidth 
-  :: (Ptr RawTH2C) -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetContour" c_th2c_getcontour 
-  :: (Ptr RawTH2C) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH2C_GetContourLevel" c_th2c_getcontourlevel 
-  :: (Ptr RawTH2C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetContourLevelPad" c_th2c_getcontourlevelpad 
-  :: (Ptr RawTH2C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBin" c_th2c_getbin 
-  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2C_GetBinCenter" c_th2c_getbincenter 
-  :: (Ptr RawTH2C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBinContent1" c_th2c_getbincontent1 
-  :: (Ptr RawTH2C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBinContent2" c_th2c_getbincontent2 
-  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBinContent3" c_th2c_getbincontent3 
-  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBinError1" c_th2c_getbinerror1 
-  :: (Ptr RawTH2C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBinError2" c_th2c_getbinerror2 
-  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBinError3" c_th2c_getbinerror3 
-  :: (Ptr RawTH2C) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBinLowEdge" c_th2c_getbinlowedge 
-  :: (Ptr RawTH2C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetBinWidth" c_th2c_getbinwidth 
-  :: (Ptr RawTH2C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetCellContent" c_th2c_getcellcontent 
-  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_GetCellError" c_th2c_getcellerror 
-  :: (Ptr RawTH2C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2C_SetTitle" c_th2c_settitle 
-  :: (Ptr RawTH2C) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2C_SetLineColor" c_th2c_setlinecolor 
-  :: (Ptr RawTH2C) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2C_SetFillColor" c_th2c_setfillcolor 
-  :: (Ptr RawTH2C) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2C_SetFillStyle" c_th2c_setfillstyle 
-  :: (Ptr RawTH2C) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2C_GetName" c_th2c_getname 
-  :: (Ptr RawTH2C) -> IO CString
-foreign import ccall "HROOT.h TH2C_Draw" c_th2c_draw 
-  :: (Ptr RawTH2C) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2C_FindObject" c_th2c_findobject 
-  :: (Ptr RawTH2C) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH2C_SaveAs" c_th2c_saveas 
-  :: (Ptr RawTH2C) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH2C_Write" c_th2c_write 
-  :: (Ptr RawTH2C) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2C_delete" c_th2c_delete 
-  :: (Ptr RawTH2C) -> IO ()
-
-foreign import ccall "HROOT.h TH2D_fill2" c_th2d_fill2 
-  :: (Ptr RawTH2D) -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2D_Add" c_th2d_add 
-  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2D_AddBinContent" c_th2d_addbincontent 
-  :: (Ptr RawTH2D) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2D_Chi2Test" c_th2d_chi2test 
-  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH2D_ComputeIntegral" c_th2d_computeintegral 
-  :: (Ptr RawTH2D) -> IO CDouble
-foreign import ccall "HROOT.h TH2D_DirectoryAutoAdd" c_th2d_directoryautoadd 
-  :: (Ptr RawTH2D) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH2D_DistancetoPrimitive" c_th2d_distancetoprimitive 
-  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2D_Divide" c_th2d_divide 
-  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH2D_DrawCopy" c_th2d_drawcopy 
-  :: (Ptr RawTH2D) -> CString -> IO (Ptr RawTH2D)
-foreign import ccall "HROOT.h TH2D_DrawNormalized" c_th2d_drawnormalized 
-  :: (Ptr RawTH2D) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2D_DrawPanel" c_th2d_drawpanel 
-  :: (Ptr RawTH2D) -> IO ()
-foreign import ccall "HROOT.h TH2D_BufferEmpty" c_th2d_bufferempty 
-  :: (Ptr RawTH2D) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2D_Eval" c_th2d_eval 
-  :: (Ptr RawTH2D) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2D_ExecuteEvent" c_th2d_executeevent 
-  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2D_FFT" c_th2d_fft 
-  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2D_fill1" c_th2d_fill1 
-  :: (Ptr RawTH2D) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2D_FillN" c_th2d_filln 
-  :: (Ptr RawTH2D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2D_FillRandom" c_th2d_fillrandom 
-  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2D_FindBin" c_th2d_findbin 
-  :: (Ptr RawTH2D) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2D_FindFixBin" c_th2d_findfixbin 
-  :: (Ptr RawTH2D) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2D_FindFirstBinAbove" c_th2d_findfirstbinabove 
-  :: (Ptr RawTH2D) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2D_FindLastBinAbove" c_th2d_findlastbinabove 
-  :: (Ptr RawTH2D) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2D_FitPanel" c_th2d_fitpanel 
-  :: (Ptr RawTH2D) -> IO ()
-foreign import ccall "HROOT.h TH2D_GetNdivisions" c_th2d_getndivisions 
-  :: (Ptr RawTH2D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2D_GetAxisColor" c_th2d_getaxiscolor 
-  :: (Ptr RawTH2D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2D_GetLabelColor" c_th2d_getlabelcolor 
-  :: (Ptr RawTH2D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2D_GetLabelFont" c_th2d_getlabelfont 
-  :: (Ptr RawTH2D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2D_GetLabelOffset" c_th2d_getlabeloffset 
-  :: (Ptr RawTH2D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetLabelSize" c_th2d_getlabelsize 
-  :: (Ptr RawTH2D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetTitleFont" c_th2d_gettitlefont 
-  :: (Ptr RawTH2D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2D_GetTitleOffset" c_th2d_gettitleoffset 
-  :: (Ptr RawTH2D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetTitleSize" c_th2d_gettitlesize 
-  :: (Ptr RawTH2D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetTickLength" c_th2d_getticklength 
-  :: (Ptr RawTH2D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBarOffset" c_th2d_getbaroffset 
-  :: (Ptr RawTH2D) -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBarWidth" c_th2d_getbarwidth 
-  :: (Ptr RawTH2D) -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetContour" c_th2d_getcontour 
-  :: (Ptr RawTH2D) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH2D_GetContourLevel" c_th2d_getcontourlevel 
-  :: (Ptr RawTH2D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetContourLevelPad" c_th2d_getcontourlevelpad 
-  :: (Ptr RawTH2D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBin" c_th2d_getbin 
-  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2D_GetBinCenter" c_th2d_getbincenter 
-  :: (Ptr RawTH2D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBinContent1" c_th2d_getbincontent1 
-  :: (Ptr RawTH2D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBinContent2" c_th2d_getbincontent2 
-  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBinContent3" c_th2d_getbincontent3 
-  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBinError1" c_th2d_getbinerror1 
-  :: (Ptr RawTH2D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBinError2" c_th2d_getbinerror2 
-  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBinError3" c_th2d_getbinerror3 
-  :: (Ptr RawTH2D) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBinLowEdge" c_th2d_getbinlowedge 
-  :: (Ptr RawTH2D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetBinWidth" c_th2d_getbinwidth 
-  :: (Ptr RawTH2D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetCellContent" c_th2d_getcellcontent 
-  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_GetCellError" c_th2d_getcellerror 
-  :: (Ptr RawTH2D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2D_SetTitle" c_th2d_settitle 
-  :: (Ptr RawTH2D) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2D_SetLineColor" c_th2d_setlinecolor 
-  :: (Ptr RawTH2D) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2D_SetFillColor" c_th2d_setfillcolor 
-  :: (Ptr RawTH2D) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2D_SetFillStyle" c_th2d_setfillstyle 
-  :: (Ptr RawTH2D) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2D_GetName" c_th2d_getname 
-  :: (Ptr RawTH2D) -> IO CString
-foreign import ccall "HROOT.h TH2D_Draw" c_th2d_draw 
-  :: (Ptr RawTH2D) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2D_FindObject" c_th2d_findobject 
-  :: (Ptr RawTH2D) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH2D_SaveAs" c_th2d_saveas 
-  :: (Ptr RawTH2D) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH2D_Write" c_th2d_write 
-  :: (Ptr RawTH2D) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2D_delete" c_th2d_delete 
-  :: (Ptr RawTH2D) -> IO ()
-
-foreign import ccall "HROOT.h TH2F_fill2" c_th2f_fill2 
-  :: (Ptr RawTH2F) -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2F_Add" c_th2f_add 
-  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2F_AddBinContent" c_th2f_addbincontent 
-  :: (Ptr RawTH2F) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2F_Chi2Test" c_th2f_chi2test 
-  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH2F_ComputeIntegral" c_th2f_computeintegral 
-  :: (Ptr RawTH2F) -> IO CDouble
-foreign import ccall "HROOT.h TH2F_DirectoryAutoAdd" c_th2f_directoryautoadd 
-  :: (Ptr RawTH2F) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH2F_DistancetoPrimitive" c_th2f_distancetoprimitive 
-  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2F_Divide" c_th2f_divide 
-  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH2F_DrawCopy" c_th2f_drawcopy 
-  :: (Ptr RawTH2F) -> CString -> IO (Ptr RawTH2F)
-foreign import ccall "HROOT.h TH2F_DrawNormalized" c_th2f_drawnormalized 
-  :: (Ptr RawTH2F) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2F_DrawPanel" c_th2f_drawpanel 
-  :: (Ptr RawTH2F) -> IO ()
-foreign import ccall "HROOT.h TH2F_BufferEmpty" c_th2f_bufferempty 
-  :: (Ptr RawTH2F) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2F_Eval" c_th2f_eval 
-  :: (Ptr RawTH2F) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2F_ExecuteEvent" c_th2f_executeevent 
-  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2F_FFT" c_th2f_fft 
-  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2F_fill1" c_th2f_fill1 
-  :: (Ptr RawTH2F) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2F_FillN" c_th2f_filln 
-  :: (Ptr RawTH2F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2F_FillRandom" c_th2f_fillrandom 
-  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2F_FindBin" c_th2f_findbin 
-  :: (Ptr RawTH2F) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2F_FindFixBin" c_th2f_findfixbin 
-  :: (Ptr RawTH2F) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2F_FindFirstBinAbove" c_th2f_findfirstbinabove 
-  :: (Ptr RawTH2F) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2F_FindLastBinAbove" c_th2f_findlastbinabove 
-  :: (Ptr RawTH2F) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2F_FitPanel" c_th2f_fitpanel 
-  :: (Ptr RawTH2F) -> IO ()
-foreign import ccall "HROOT.h TH2F_GetNdivisions" c_th2f_getndivisions 
-  :: (Ptr RawTH2F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2F_GetAxisColor" c_th2f_getaxiscolor 
-  :: (Ptr RawTH2F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2F_GetLabelColor" c_th2f_getlabelcolor 
-  :: (Ptr RawTH2F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2F_GetLabelFont" c_th2f_getlabelfont 
-  :: (Ptr RawTH2F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2F_GetLabelOffset" c_th2f_getlabeloffset 
-  :: (Ptr RawTH2F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetLabelSize" c_th2f_getlabelsize 
-  :: (Ptr RawTH2F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetTitleFont" c_th2f_gettitlefont 
-  :: (Ptr RawTH2F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2F_GetTitleOffset" c_th2f_gettitleoffset 
-  :: (Ptr RawTH2F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetTitleSize" c_th2f_gettitlesize 
-  :: (Ptr RawTH2F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetTickLength" c_th2f_getticklength 
-  :: (Ptr RawTH2F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBarOffset" c_th2f_getbaroffset 
-  :: (Ptr RawTH2F) -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBarWidth" c_th2f_getbarwidth 
-  :: (Ptr RawTH2F) -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetContour" c_th2f_getcontour 
-  :: (Ptr RawTH2F) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH2F_GetContourLevel" c_th2f_getcontourlevel 
-  :: (Ptr RawTH2F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetContourLevelPad" c_th2f_getcontourlevelpad 
-  :: (Ptr RawTH2F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBin" c_th2f_getbin 
-  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2F_GetBinCenter" c_th2f_getbincenter 
-  :: (Ptr RawTH2F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBinContent1" c_th2f_getbincontent1 
-  :: (Ptr RawTH2F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBinContent2" c_th2f_getbincontent2 
-  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBinContent3" c_th2f_getbincontent3 
-  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBinError1" c_th2f_getbinerror1 
-  :: (Ptr RawTH2F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBinError2" c_th2f_getbinerror2 
-  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBinError3" c_th2f_getbinerror3 
-  :: (Ptr RawTH2F) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBinLowEdge" c_th2f_getbinlowedge 
-  :: (Ptr RawTH2F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetBinWidth" c_th2f_getbinwidth 
-  :: (Ptr RawTH2F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetCellContent" c_th2f_getcellcontent 
-  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_GetCellError" c_th2f_getcellerror 
-  :: (Ptr RawTH2F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2F_SetTitle" c_th2f_settitle 
-  :: (Ptr RawTH2F) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2F_SetLineColor" c_th2f_setlinecolor 
-  :: (Ptr RawTH2F) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2F_SetFillColor" c_th2f_setfillcolor 
-  :: (Ptr RawTH2F) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2F_SetFillStyle" c_th2f_setfillstyle 
-  :: (Ptr RawTH2F) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2F_GetName" c_th2f_getname 
-  :: (Ptr RawTH2F) -> IO CString
-foreign import ccall "HROOT.h TH2F_Draw" c_th2f_draw 
-  :: (Ptr RawTH2F) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2F_FindObject" c_th2f_findobject 
-  :: (Ptr RawTH2F) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH2F_SaveAs" c_th2f_saveas 
-  :: (Ptr RawTH2F) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH2F_Write" c_th2f_write 
-  :: (Ptr RawTH2F) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2F_delete" c_th2f_delete 
-  :: (Ptr RawTH2F) -> IO ()
-foreign import ccall "HROOT.h TH2F_newTH2F" c_th2f_newth2f 
-  :: CString -> CString -> CInt -> CDouble -> CDouble -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH2F)
-
-foreign import ccall "HROOT.h TH2I_fill2" c_th2i_fill2 
-  :: (Ptr RawTH2I) -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2I_Add" c_th2i_add 
-  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2I_AddBinContent" c_th2i_addbincontent 
-  :: (Ptr RawTH2I) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2I_Chi2Test" c_th2i_chi2test 
-  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH2I_ComputeIntegral" c_th2i_computeintegral 
-  :: (Ptr RawTH2I) -> IO CDouble
-foreign import ccall "HROOT.h TH2I_DirectoryAutoAdd" c_th2i_directoryautoadd 
-  :: (Ptr RawTH2I) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH2I_DistancetoPrimitive" c_th2i_distancetoprimitive 
-  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2I_Divide" c_th2i_divide 
-  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH2I_DrawCopy" c_th2i_drawcopy 
-  :: (Ptr RawTH2I) -> CString -> IO (Ptr RawTH2I)
-foreign import ccall "HROOT.h TH2I_DrawNormalized" c_th2i_drawnormalized 
-  :: (Ptr RawTH2I) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2I_DrawPanel" c_th2i_drawpanel 
-  :: (Ptr RawTH2I) -> IO ()
-foreign import ccall "HROOT.h TH2I_BufferEmpty" c_th2i_bufferempty 
-  :: (Ptr RawTH2I) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2I_Eval" c_th2i_eval 
-  :: (Ptr RawTH2I) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2I_ExecuteEvent" c_th2i_executeevent 
-  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2I_FFT" c_th2i_fft 
-  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2I_fill1" c_th2i_fill1 
-  :: (Ptr RawTH2I) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2I_FillN" c_th2i_filln 
-  :: (Ptr RawTH2I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2I_FillRandom" c_th2i_fillrandom 
-  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2I_FindBin" c_th2i_findbin 
-  :: (Ptr RawTH2I) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2I_FindFixBin" c_th2i_findfixbin 
-  :: (Ptr RawTH2I) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2I_FindFirstBinAbove" c_th2i_findfirstbinabove 
-  :: (Ptr RawTH2I) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2I_FindLastBinAbove" c_th2i_findlastbinabove 
-  :: (Ptr RawTH2I) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2I_FitPanel" c_th2i_fitpanel 
-  :: (Ptr RawTH2I) -> IO ()
-foreign import ccall "HROOT.h TH2I_GetNdivisions" c_th2i_getndivisions 
-  :: (Ptr RawTH2I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2I_GetAxisColor" c_th2i_getaxiscolor 
-  :: (Ptr RawTH2I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2I_GetLabelColor" c_th2i_getlabelcolor 
-  :: (Ptr RawTH2I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2I_GetLabelFont" c_th2i_getlabelfont 
-  :: (Ptr RawTH2I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2I_GetLabelOffset" c_th2i_getlabeloffset 
-  :: (Ptr RawTH2I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetLabelSize" c_th2i_getlabelsize 
-  :: (Ptr RawTH2I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetTitleFont" c_th2i_gettitlefont 
-  :: (Ptr RawTH2I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2I_GetTitleOffset" c_th2i_gettitleoffset 
-  :: (Ptr RawTH2I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetTitleSize" c_th2i_gettitlesize 
-  :: (Ptr RawTH2I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetTickLength" c_th2i_getticklength 
-  :: (Ptr RawTH2I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBarOffset" c_th2i_getbaroffset 
-  :: (Ptr RawTH2I) -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBarWidth" c_th2i_getbarwidth 
-  :: (Ptr RawTH2I) -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetContour" c_th2i_getcontour 
-  :: (Ptr RawTH2I) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH2I_GetContourLevel" c_th2i_getcontourlevel 
-  :: (Ptr RawTH2I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetContourLevelPad" c_th2i_getcontourlevelpad 
-  :: (Ptr RawTH2I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBin" c_th2i_getbin 
-  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2I_GetBinCenter" c_th2i_getbincenter 
-  :: (Ptr RawTH2I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBinContent1" c_th2i_getbincontent1 
-  :: (Ptr RawTH2I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBinContent2" c_th2i_getbincontent2 
-  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBinContent3" c_th2i_getbincontent3 
-  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBinError1" c_th2i_getbinerror1 
-  :: (Ptr RawTH2I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBinError2" c_th2i_getbinerror2 
-  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBinError3" c_th2i_getbinerror3 
-  :: (Ptr RawTH2I) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBinLowEdge" c_th2i_getbinlowedge 
-  :: (Ptr RawTH2I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetBinWidth" c_th2i_getbinwidth 
-  :: (Ptr RawTH2I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetCellContent" c_th2i_getcellcontent 
-  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_GetCellError" c_th2i_getcellerror 
-  :: (Ptr RawTH2I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2I_SetTitle" c_th2i_settitle 
-  :: (Ptr RawTH2I) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2I_SetLineColor" c_th2i_setlinecolor 
-  :: (Ptr RawTH2I) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2I_SetFillColor" c_th2i_setfillcolor 
-  :: (Ptr RawTH2I) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2I_SetFillStyle" c_th2i_setfillstyle 
-  :: (Ptr RawTH2I) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2I_GetName" c_th2i_getname 
-  :: (Ptr RawTH2I) -> IO CString
-foreign import ccall "HROOT.h TH2I_Draw" c_th2i_draw 
-  :: (Ptr RawTH2I) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2I_FindObject" c_th2i_findobject 
-  :: (Ptr RawTH2I) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH2I_SaveAs" c_th2i_saveas 
-  :: (Ptr RawTH2I) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH2I_Write" c_th2i_write 
-  :: (Ptr RawTH2I) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2I_delete" c_th2i_delete 
-  :: (Ptr RawTH2I) -> IO ()
-
-foreign import ccall "HROOT.h TH2Poly_fill2" c_th2poly_fill2 
-  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_Add" c_th2poly_add 
-  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2Poly_AddBinContent" c_th2poly_addbincontent 
-  :: (Ptr RawTH2Poly) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2Poly_Chi2Test" c_th2poly_chi2test 
-  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_ComputeIntegral" c_th2poly_computeintegral 
-  :: (Ptr RawTH2Poly) -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_DirectoryAutoAdd" c_th2poly_directoryautoadd 
-  :: (Ptr RawTH2Poly) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH2Poly_DistancetoPrimitive" c_th2poly_distancetoprimitive 
-  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_Divide" c_th2poly_divide 
-  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH2Poly_DrawCopy" c_th2poly_drawcopy 
-  :: (Ptr RawTH2Poly) -> CString -> IO (Ptr RawTH2Poly)
-foreign import ccall "HROOT.h TH2Poly_DrawNormalized" c_th2poly_drawnormalized 
-  :: (Ptr RawTH2Poly) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2Poly_DrawPanel" c_th2poly_drawpanel 
-  :: (Ptr RawTH2Poly) -> IO ()
-foreign import ccall "HROOT.h TH2Poly_BufferEmpty" c_th2poly_bufferempty 
-  :: (Ptr RawTH2Poly) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_Eval" c_th2poly_eval 
-  :: (Ptr RawTH2Poly) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2Poly_ExecuteEvent" c_th2poly_executeevent 
-  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2Poly_FFT" c_th2poly_fft 
-  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2Poly_fill1" c_th2poly_fill1 
-  :: (Ptr RawTH2Poly) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_FillN" c_th2poly_filln 
-  :: (Ptr RawTH2Poly) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2Poly_FillRandom" c_th2poly_fillrandom 
-  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2Poly_FindBin" c_th2poly_findbin 
-  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_FindFixBin" c_th2poly_findfixbin 
-  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_FindFirstBinAbove" c_th2poly_findfirstbinabove 
-  :: (Ptr RawTH2Poly) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_FindLastBinAbove" c_th2poly_findlastbinabove 
-  :: (Ptr RawTH2Poly) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_FitPanel" c_th2poly_fitpanel 
-  :: (Ptr RawTH2Poly) -> IO ()
-foreign import ccall "HROOT.h TH2Poly_GetNdivisions" c_th2poly_getndivisions 
-  :: (Ptr RawTH2Poly) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_GetAxisColor" c_th2poly_getaxiscolor 
-  :: (Ptr RawTH2Poly) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_GetLabelColor" c_th2poly_getlabelcolor 
-  :: (Ptr RawTH2Poly) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_GetLabelFont" c_th2poly_getlabelfont 
-  :: (Ptr RawTH2Poly) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_GetLabelOffset" c_th2poly_getlabeloffset 
-  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetLabelSize" c_th2poly_getlabelsize 
-  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetTitleFont" c_th2poly_gettitlefont 
-  :: (Ptr RawTH2Poly) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_GetTitleOffset" c_th2poly_gettitleoffset 
-  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetTitleSize" c_th2poly_gettitlesize 
-  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetTickLength" c_th2poly_getticklength 
-  :: (Ptr RawTH2Poly) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBarOffset" c_th2poly_getbaroffset 
-  :: (Ptr RawTH2Poly) -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBarWidth" c_th2poly_getbarwidth 
-  :: (Ptr RawTH2Poly) -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetContour" c_th2poly_getcontour 
-  :: (Ptr RawTH2Poly) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_GetContourLevel" c_th2poly_getcontourlevel 
-  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetContourLevelPad" c_th2poly_getcontourlevelpad 
-  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBin" c_th2poly_getbin 
-  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_GetBinCenter" c_th2poly_getbincenter 
-  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBinContent1" c_th2poly_getbincontent1 
-  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBinContent2" c_th2poly_getbincontent2 
-  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBinContent3" c_th2poly_getbincontent3 
-  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBinError1" c_th2poly_getbinerror1 
-  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBinError2" c_th2poly_getbinerror2 
-  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBinError3" c_th2poly_getbinerror3 
-  :: (Ptr RawTH2Poly) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBinLowEdge" c_th2poly_getbinlowedge 
-  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetBinWidth" c_th2poly_getbinwidth 
-  :: (Ptr RawTH2Poly) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetCellContent" c_th2poly_getcellcontent 
-  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_GetCellError" c_th2poly_getcellerror 
-  :: (Ptr RawTH2Poly) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2Poly_SetTitle" c_th2poly_settitle 
-  :: (Ptr RawTH2Poly) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2Poly_SetLineColor" c_th2poly_setlinecolor 
-  :: (Ptr RawTH2Poly) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2Poly_SetFillColor" c_th2poly_setfillcolor 
-  :: (Ptr RawTH2Poly) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2Poly_SetFillStyle" c_th2poly_setfillstyle 
-  :: (Ptr RawTH2Poly) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2Poly_GetName" c_th2poly_getname 
-  :: (Ptr RawTH2Poly) -> IO CString
-foreign import ccall "HROOT.h TH2Poly_Draw" c_th2poly_draw 
-  :: (Ptr RawTH2Poly) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2Poly_FindObject" c_th2poly_findobject 
-  :: (Ptr RawTH2Poly) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH2Poly_SaveAs" c_th2poly_saveas 
-  :: (Ptr RawTH2Poly) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH2Poly_Write" c_th2poly_write 
-  :: (Ptr RawTH2Poly) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2Poly_delete" c_th2poly_delete 
-  :: (Ptr RawTH2Poly) -> IO ()
-
-foreign import ccall "HROOT.h TH2S_fill2" c_th2s_fill2 
-  :: (Ptr RawTH2S) -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2S_Add" c_th2s_add 
-  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2S_AddBinContent" c_th2s_addbincontent 
-  :: (Ptr RawTH2S) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH2S_Chi2Test" c_th2s_chi2test 
-  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH2S_ComputeIntegral" c_th2s_computeintegral 
-  :: (Ptr RawTH2S) -> IO CDouble
-foreign import ccall "HROOT.h TH2S_DirectoryAutoAdd" c_th2s_directoryautoadd 
-  :: (Ptr RawTH2S) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH2S_DistancetoPrimitive" c_th2s_distancetoprimitive 
-  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2S_Divide" c_th2s_divide 
-  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH2S_DrawCopy" c_th2s_drawcopy 
-  :: (Ptr RawTH2S) -> CString -> IO (Ptr RawTH2S)
-foreign import ccall "HROOT.h TH2S_DrawNormalized" c_th2s_drawnormalized 
-  :: (Ptr RawTH2S) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2S_DrawPanel" c_th2s_drawpanel 
-  :: (Ptr RawTH2S) -> IO ()
-foreign import ccall "HROOT.h TH2S_BufferEmpty" c_th2s_bufferempty 
-  :: (Ptr RawTH2S) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2S_Eval" c_th2s_eval 
-  :: (Ptr RawTH2S) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2S_ExecuteEvent" c_th2s_executeevent 
-  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2S_FFT" c_th2s_fft 
-  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH2S_fill1" c_th2s_fill1 
-  :: (Ptr RawTH2S) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2S_FillN" c_th2s_filln 
-  :: (Ptr RawTH2S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2S_FillRandom" c_th2s_fillrandom 
-  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2S_FindBin" c_th2s_findbin 
-  :: (Ptr RawTH2S) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2S_FindFixBin" c_th2s_findfixbin 
-  :: (Ptr RawTH2S) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH2S_FindFirstBinAbove" c_th2s_findfirstbinabove 
-  :: (Ptr RawTH2S) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2S_FindLastBinAbove" c_th2s_findlastbinabove 
-  :: (Ptr RawTH2S) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2S_FitPanel" c_th2s_fitpanel 
-  :: (Ptr RawTH2S) -> IO ()
-foreign import ccall "HROOT.h TH2S_GetNdivisions" c_th2s_getndivisions 
-  :: (Ptr RawTH2S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2S_GetAxisColor" c_th2s_getaxiscolor 
-  :: (Ptr RawTH2S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2S_GetLabelColor" c_th2s_getlabelcolor 
-  :: (Ptr RawTH2S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2S_GetLabelFont" c_th2s_getlabelfont 
-  :: (Ptr RawTH2S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2S_GetLabelOffset" c_th2s_getlabeloffset 
-  :: (Ptr RawTH2S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetLabelSize" c_th2s_getlabelsize 
-  :: (Ptr RawTH2S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetTitleFont" c_th2s_gettitlefont 
-  :: (Ptr RawTH2S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH2S_GetTitleOffset" c_th2s_gettitleoffset 
-  :: (Ptr RawTH2S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetTitleSize" c_th2s_gettitlesize 
-  :: (Ptr RawTH2S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetTickLength" c_th2s_getticklength 
-  :: (Ptr RawTH2S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBarOffset" c_th2s_getbaroffset 
-  :: (Ptr RawTH2S) -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBarWidth" c_th2s_getbarwidth 
-  :: (Ptr RawTH2S) -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetContour" c_th2s_getcontour 
-  :: (Ptr RawTH2S) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH2S_GetContourLevel" c_th2s_getcontourlevel 
-  :: (Ptr RawTH2S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetContourLevelPad" c_th2s_getcontourlevelpad 
-  :: (Ptr RawTH2S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBin" c_th2s_getbin 
-  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2S_GetBinCenter" c_th2s_getbincenter 
-  :: (Ptr RawTH2S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBinContent1" c_th2s_getbincontent1 
-  :: (Ptr RawTH2S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBinContent2" c_th2s_getbincontent2 
-  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBinContent3" c_th2s_getbincontent3 
-  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBinError1" c_th2s_getbinerror1 
-  :: (Ptr RawTH2S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBinError2" c_th2s_getbinerror2 
-  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBinError3" c_th2s_getbinerror3 
-  :: (Ptr RawTH2S) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBinLowEdge" c_th2s_getbinlowedge 
-  :: (Ptr RawTH2S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetBinWidth" c_th2s_getbinwidth 
-  :: (Ptr RawTH2S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetCellContent" c_th2s_getcellcontent 
-  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_GetCellError" c_th2s_getcellerror 
-  :: (Ptr RawTH2S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH2S_SetTitle" c_th2s_settitle 
-  :: (Ptr RawTH2S) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2S_SetLineColor" c_th2s_setlinecolor 
-  :: (Ptr RawTH2S) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2S_SetFillColor" c_th2s_setfillcolor 
-  :: (Ptr RawTH2S) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2S_SetFillStyle" c_th2s_setfillstyle 
-  :: (Ptr RawTH2S) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH2S_GetName" c_th2s_getname 
-  :: (Ptr RawTH2S) -> IO CString
-foreign import ccall "HROOT.h TH2S_Draw" c_th2s_draw 
-  :: (Ptr RawTH2S) -> CString -> IO ()
-foreign import ccall "HROOT.h TH2S_FindObject" c_th2s_findobject 
-  :: (Ptr RawTH2S) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH2S_SaveAs" c_th2s_saveas 
-  :: (Ptr RawTH2S) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH2S_Write" c_th2s_write 
-  :: (Ptr RawTH2S) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH2S_delete" c_th2s_delete 
-  :: (Ptr RawTH2S) -> IO ()
-
-foreign import ccall "HROOT.h TH3C_Add" c_th3c_add 
-  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3C_AddBinContent" c_th3c_addbincontent 
-  :: (Ptr RawTH3C) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3C_Chi2Test" c_th3c_chi2test 
-  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH3C_ComputeIntegral" c_th3c_computeintegral 
-  :: (Ptr RawTH3C) -> IO CDouble
-foreign import ccall "HROOT.h TH3C_DirectoryAutoAdd" c_th3c_directoryautoadd 
-  :: (Ptr RawTH3C) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH3C_DistancetoPrimitive" c_th3c_distancetoprimitive 
-  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3C_Divide" c_th3c_divide 
-  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH3C_DrawCopy" c_th3c_drawcopy 
-  :: (Ptr RawTH3C) -> CString -> IO (Ptr RawTH3C)
-foreign import ccall "HROOT.h TH3C_DrawNormalized" c_th3c_drawnormalized 
-  :: (Ptr RawTH3C) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3C_DrawPanel" c_th3c_drawpanel 
-  :: (Ptr RawTH3C) -> IO ()
-foreign import ccall "HROOT.h TH3C_BufferEmpty" c_th3c_bufferempty 
-  :: (Ptr RawTH3C) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3C_Eval" c_th3c_eval 
-  :: (Ptr RawTH3C) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3C_ExecuteEvent" c_th3c_executeevent 
-  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3C_FFT" c_th3c_fft 
-  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3C_fill1" c_th3c_fill1 
-  :: (Ptr RawTH3C) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3C_FillN" c_th3c_filln 
-  :: (Ptr RawTH3C) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3C_FillRandom" c_th3c_fillrandom 
-  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3C_FindBin" c_th3c_findbin 
-  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3C_FindFixBin" c_th3c_findfixbin 
-  :: (Ptr RawTH3C) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3C_FindFirstBinAbove" c_th3c_findfirstbinabove 
-  :: (Ptr RawTH3C) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3C_FindLastBinAbove" c_th3c_findlastbinabove 
-  :: (Ptr RawTH3C) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3C_FitPanel" c_th3c_fitpanel 
-  :: (Ptr RawTH3C) -> IO ()
-foreign import ccall "HROOT.h TH3C_GetNdivisions" c_th3c_getndivisions 
-  :: (Ptr RawTH3C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3C_GetAxisColor" c_th3c_getaxiscolor 
-  :: (Ptr RawTH3C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3C_GetLabelColor" c_th3c_getlabelcolor 
-  :: (Ptr RawTH3C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3C_GetLabelFont" c_th3c_getlabelfont 
-  :: (Ptr RawTH3C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3C_GetLabelOffset" c_th3c_getlabeloffset 
-  :: (Ptr RawTH3C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetLabelSize" c_th3c_getlabelsize 
-  :: (Ptr RawTH3C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetTitleFont" c_th3c_gettitlefont 
-  :: (Ptr RawTH3C) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3C_GetTitleOffset" c_th3c_gettitleoffset 
-  :: (Ptr RawTH3C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetTitleSize" c_th3c_gettitlesize 
-  :: (Ptr RawTH3C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetTickLength" c_th3c_getticklength 
-  :: (Ptr RawTH3C) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBarOffset" c_th3c_getbaroffset 
-  :: (Ptr RawTH3C) -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBarWidth" c_th3c_getbarwidth 
-  :: (Ptr RawTH3C) -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetContour" c_th3c_getcontour 
-  :: (Ptr RawTH3C) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH3C_GetContourLevel" c_th3c_getcontourlevel 
-  :: (Ptr RawTH3C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetContourLevelPad" c_th3c_getcontourlevelpad 
-  :: (Ptr RawTH3C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBin" c_th3c_getbin 
-  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3C_GetBinCenter" c_th3c_getbincenter 
-  :: (Ptr RawTH3C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBinContent1" c_th3c_getbincontent1 
-  :: (Ptr RawTH3C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBinContent2" c_th3c_getbincontent2 
-  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBinContent3" c_th3c_getbincontent3 
-  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBinError1" c_th3c_getbinerror1 
-  :: (Ptr RawTH3C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBinError2" c_th3c_getbinerror2 
-  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBinError3" c_th3c_getbinerror3 
-  :: (Ptr RawTH3C) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBinLowEdge" c_th3c_getbinlowedge 
-  :: (Ptr RawTH3C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetBinWidth" c_th3c_getbinwidth 
-  :: (Ptr RawTH3C) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetCellContent" c_th3c_getcellcontent 
-  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_GetCellError" c_th3c_getcellerror 
-  :: (Ptr RawTH3C) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3C_SetTitle" c_th3c_settitle 
-  :: (Ptr RawTH3C) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3C_SetLineColor" c_th3c_setlinecolor 
-  :: (Ptr RawTH3C) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3C_SetFillColor" c_th3c_setfillcolor 
-  :: (Ptr RawTH3C) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3C_SetFillStyle" c_th3c_setfillstyle 
-  :: (Ptr RawTH3C) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3C_GetName" c_th3c_getname 
-  :: (Ptr RawTH3C) -> IO CString
-foreign import ccall "HROOT.h TH3C_Draw" c_th3c_draw 
-  :: (Ptr RawTH3C) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3C_FindObject" c_th3c_findobject 
-  :: (Ptr RawTH3C) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH3C_SaveAs" c_th3c_saveas 
-  :: (Ptr RawTH3C) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH3C_Write" c_th3c_write 
-  :: (Ptr RawTH3C) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3C_delete" c_th3c_delete 
-  :: (Ptr RawTH3C) -> IO ()
-
-foreign import ccall "HROOT.h TH3D_Add" c_th3d_add 
-  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3D_AddBinContent" c_th3d_addbincontent 
-  :: (Ptr RawTH3D) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3D_Chi2Test" c_th3d_chi2test 
-  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH3D_ComputeIntegral" c_th3d_computeintegral 
-  :: (Ptr RawTH3D) -> IO CDouble
-foreign import ccall "HROOT.h TH3D_DirectoryAutoAdd" c_th3d_directoryautoadd 
-  :: (Ptr RawTH3D) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH3D_DistancetoPrimitive" c_th3d_distancetoprimitive 
-  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3D_Divide" c_th3d_divide 
-  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH3D_DrawCopy" c_th3d_drawcopy 
-  :: (Ptr RawTH3D) -> CString -> IO (Ptr RawTH3D)
-foreign import ccall "HROOT.h TH3D_DrawNormalized" c_th3d_drawnormalized 
-  :: (Ptr RawTH3D) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3D_DrawPanel" c_th3d_drawpanel 
-  :: (Ptr RawTH3D) -> IO ()
-foreign import ccall "HROOT.h TH3D_BufferEmpty" c_th3d_bufferempty 
-  :: (Ptr RawTH3D) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3D_Eval" c_th3d_eval 
-  :: (Ptr RawTH3D) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3D_ExecuteEvent" c_th3d_executeevent 
-  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3D_FFT" c_th3d_fft 
-  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3D_fill1" c_th3d_fill1 
-  :: (Ptr RawTH3D) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3D_FillN" c_th3d_filln 
-  :: (Ptr RawTH3D) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3D_FillRandom" c_th3d_fillrandom 
-  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3D_FindBin" c_th3d_findbin 
-  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3D_FindFixBin" c_th3d_findfixbin 
-  :: (Ptr RawTH3D) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3D_FindFirstBinAbove" c_th3d_findfirstbinabove 
-  :: (Ptr RawTH3D) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3D_FindLastBinAbove" c_th3d_findlastbinabove 
-  :: (Ptr RawTH3D) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3D_FitPanel" c_th3d_fitpanel 
-  :: (Ptr RawTH3D) -> IO ()
-foreign import ccall "HROOT.h TH3D_GetNdivisions" c_th3d_getndivisions 
-  :: (Ptr RawTH3D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3D_GetAxisColor" c_th3d_getaxiscolor 
-  :: (Ptr RawTH3D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3D_GetLabelColor" c_th3d_getlabelcolor 
-  :: (Ptr RawTH3D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3D_GetLabelFont" c_th3d_getlabelfont 
-  :: (Ptr RawTH3D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3D_GetLabelOffset" c_th3d_getlabeloffset 
-  :: (Ptr RawTH3D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetLabelSize" c_th3d_getlabelsize 
-  :: (Ptr RawTH3D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetTitleFont" c_th3d_gettitlefont 
-  :: (Ptr RawTH3D) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3D_GetTitleOffset" c_th3d_gettitleoffset 
-  :: (Ptr RawTH3D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetTitleSize" c_th3d_gettitlesize 
-  :: (Ptr RawTH3D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetTickLength" c_th3d_getticklength 
-  :: (Ptr RawTH3D) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBarOffset" c_th3d_getbaroffset 
-  :: (Ptr RawTH3D) -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBarWidth" c_th3d_getbarwidth 
-  :: (Ptr RawTH3D) -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetContour" c_th3d_getcontour 
-  :: (Ptr RawTH3D) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH3D_GetContourLevel" c_th3d_getcontourlevel 
-  :: (Ptr RawTH3D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetContourLevelPad" c_th3d_getcontourlevelpad 
-  :: (Ptr RawTH3D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBin" c_th3d_getbin 
-  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3D_GetBinCenter" c_th3d_getbincenter 
-  :: (Ptr RawTH3D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBinContent1" c_th3d_getbincontent1 
-  :: (Ptr RawTH3D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBinContent2" c_th3d_getbincontent2 
-  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBinContent3" c_th3d_getbincontent3 
-  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBinError1" c_th3d_getbinerror1 
-  :: (Ptr RawTH3D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBinError2" c_th3d_getbinerror2 
-  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBinError3" c_th3d_getbinerror3 
-  :: (Ptr RawTH3D) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBinLowEdge" c_th3d_getbinlowedge 
-  :: (Ptr RawTH3D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetBinWidth" c_th3d_getbinwidth 
-  :: (Ptr RawTH3D) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetCellContent" c_th3d_getcellcontent 
-  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_GetCellError" c_th3d_getcellerror 
-  :: (Ptr RawTH3D) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3D_SetTitle" c_th3d_settitle 
-  :: (Ptr RawTH3D) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3D_SetLineColor" c_th3d_setlinecolor 
-  :: (Ptr RawTH3D) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3D_SetFillColor" c_th3d_setfillcolor 
-  :: (Ptr RawTH3D) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3D_SetFillStyle" c_th3d_setfillstyle 
-  :: (Ptr RawTH3D) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3D_GetName" c_th3d_getname 
-  :: (Ptr RawTH3D) -> IO CString
-foreign import ccall "HROOT.h TH3D_Draw" c_th3d_draw 
-  :: (Ptr RawTH3D) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3D_FindObject" c_th3d_findobject 
-  :: (Ptr RawTH3D) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH3D_SaveAs" c_th3d_saveas 
-  :: (Ptr RawTH3D) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH3D_Write" c_th3d_write 
-  :: (Ptr RawTH3D) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3D_delete" c_th3d_delete 
-  :: (Ptr RawTH3D) -> IO ()
-
-foreign import ccall "HROOT.h TH3F_Add" c_th3f_add 
-  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3F_AddBinContent" c_th3f_addbincontent 
-  :: (Ptr RawTH3F) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3F_Chi2Test" c_th3f_chi2test 
-  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH3F_ComputeIntegral" c_th3f_computeintegral 
-  :: (Ptr RawTH3F) -> IO CDouble
-foreign import ccall "HROOT.h TH3F_DirectoryAutoAdd" c_th3f_directoryautoadd 
-  :: (Ptr RawTH3F) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH3F_DistancetoPrimitive" c_th3f_distancetoprimitive 
-  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3F_Divide" c_th3f_divide 
-  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH3F_DrawCopy" c_th3f_drawcopy 
-  :: (Ptr RawTH3F) -> CString -> IO (Ptr RawTH3F)
-foreign import ccall "HROOT.h TH3F_DrawNormalized" c_th3f_drawnormalized 
-  :: (Ptr RawTH3F) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3F_DrawPanel" c_th3f_drawpanel 
-  :: (Ptr RawTH3F) -> IO ()
-foreign import ccall "HROOT.h TH3F_BufferEmpty" c_th3f_bufferempty 
-  :: (Ptr RawTH3F) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3F_Eval" c_th3f_eval 
-  :: (Ptr RawTH3F) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3F_ExecuteEvent" c_th3f_executeevent 
-  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3F_FFT" c_th3f_fft 
-  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3F_fill1" c_th3f_fill1 
-  :: (Ptr RawTH3F) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3F_FillN" c_th3f_filln 
-  :: (Ptr RawTH3F) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3F_FillRandom" c_th3f_fillrandom 
-  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3F_FindBin" c_th3f_findbin 
-  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3F_FindFixBin" c_th3f_findfixbin 
-  :: (Ptr RawTH3F) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3F_FindFirstBinAbove" c_th3f_findfirstbinabove 
-  :: (Ptr RawTH3F) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3F_FindLastBinAbove" c_th3f_findlastbinabove 
-  :: (Ptr RawTH3F) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3F_FitPanel" c_th3f_fitpanel 
-  :: (Ptr RawTH3F) -> IO ()
-foreign import ccall "HROOT.h TH3F_GetNdivisions" c_th3f_getndivisions 
-  :: (Ptr RawTH3F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3F_GetAxisColor" c_th3f_getaxiscolor 
-  :: (Ptr RawTH3F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3F_GetLabelColor" c_th3f_getlabelcolor 
-  :: (Ptr RawTH3F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3F_GetLabelFont" c_th3f_getlabelfont 
-  :: (Ptr RawTH3F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3F_GetLabelOffset" c_th3f_getlabeloffset 
-  :: (Ptr RawTH3F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetLabelSize" c_th3f_getlabelsize 
-  :: (Ptr RawTH3F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetTitleFont" c_th3f_gettitlefont 
-  :: (Ptr RawTH3F) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3F_GetTitleOffset" c_th3f_gettitleoffset 
-  :: (Ptr RawTH3F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetTitleSize" c_th3f_gettitlesize 
-  :: (Ptr RawTH3F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetTickLength" c_th3f_getticklength 
-  :: (Ptr RawTH3F) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBarOffset" c_th3f_getbaroffset 
-  :: (Ptr RawTH3F) -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBarWidth" c_th3f_getbarwidth 
-  :: (Ptr RawTH3F) -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetContour" c_th3f_getcontour 
-  :: (Ptr RawTH3F) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH3F_GetContourLevel" c_th3f_getcontourlevel 
-  :: (Ptr RawTH3F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetContourLevelPad" c_th3f_getcontourlevelpad 
-  :: (Ptr RawTH3F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBin" c_th3f_getbin 
-  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3F_GetBinCenter" c_th3f_getbincenter 
-  :: (Ptr RawTH3F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBinContent1" c_th3f_getbincontent1 
-  :: (Ptr RawTH3F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBinContent2" c_th3f_getbincontent2 
-  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBinContent3" c_th3f_getbincontent3 
-  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBinError1" c_th3f_getbinerror1 
-  :: (Ptr RawTH3F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBinError2" c_th3f_getbinerror2 
-  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBinError3" c_th3f_getbinerror3 
-  :: (Ptr RawTH3F) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBinLowEdge" c_th3f_getbinlowedge 
-  :: (Ptr RawTH3F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetBinWidth" c_th3f_getbinwidth 
-  :: (Ptr RawTH3F) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetCellContent" c_th3f_getcellcontent 
-  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_GetCellError" c_th3f_getcellerror 
-  :: (Ptr RawTH3F) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3F_SetTitle" c_th3f_settitle 
-  :: (Ptr RawTH3F) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3F_SetLineColor" c_th3f_setlinecolor 
-  :: (Ptr RawTH3F) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3F_SetFillColor" c_th3f_setfillcolor 
-  :: (Ptr RawTH3F) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3F_SetFillStyle" c_th3f_setfillstyle 
-  :: (Ptr RawTH3F) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3F_GetName" c_th3f_getname 
-  :: (Ptr RawTH3F) -> IO CString
-foreign import ccall "HROOT.h TH3F_Draw" c_th3f_draw 
-  :: (Ptr RawTH3F) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3F_FindObject" c_th3f_findobject 
-  :: (Ptr RawTH3F) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH3F_SaveAs" c_th3f_saveas 
-  :: (Ptr RawTH3F) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH3F_Write" c_th3f_write 
-  :: (Ptr RawTH3F) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3F_delete" c_th3f_delete 
-  :: (Ptr RawTH3F) -> IO ()
-
-foreign import ccall "HROOT.h TH3I_Add" c_th3i_add 
-  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3I_AddBinContent" c_th3i_addbincontent 
-  :: (Ptr RawTH3I) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3I_Chi2Test" c_th3i_chi2test 
-  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH3I_ComputeIntegral" c_th3i_computeintegral 
-  :: (Ptr RawTH3I) -> IO CDouble
-foreign import ccall "HROOT.h TH3I_DirectoryAutoAdd" c_th3i_directoryautoadd 
-  :: (Ptr RawTH3I) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH3I_DistancetoPrimitive" c_th3i_distancetoprimitive 
-  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3I_Divide" c_th3i_divide 
-  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH3I_DrawCopy" c_th3i_drawcopy 
-  :: (Ptr RawTH3I) -> CString -> IO (Ptr RawTH3I)
-foreign import ccall "HROOT.h TH3I_DrawNormalized" c_th3i_drawnormalized 
-  :: (Ptr RawTH3I) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3I_DrawPanel" c_th3i_drawpanel 
-  :: (Ptr RawTH3I) -> IO ()
-foreign import ccall "HROOT.h TH3I_BufferEmpty" c_th3i_bufferempty 
-  :: (Ptr RawTH3I) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3I_Eval" c_th3i_eval 
-  :: (Ptr RawTH3I) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3I_ExecuteEvent" c_th3i_executeevent 
-  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3I_FFT" c_th3i_fft 
-  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3I_fill1" c_th3i_fill1 
-  :: (Ptr RawTH3I) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3I_FillN" c_th3i_filln 
-  :: (Ptr RawTH3I) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3I_FillRandom" c_th3i_fillrandom 
-  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3I_FindBin" c_th3i_findbin 
-  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3I_FindFixBin" c_th3i_findfixbin 
-  :: (Ptr RawTH3I) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3I_FindFirstBinAbove" c_th3i_findfirstbinabove 
-  :: (Ptr RawTH3I) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3I_FindLastBinAbove" c_th3i_findlastbinabove 
-  :: (Ptr RawTH3I) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3I_FitPanel" c_th3i_fitpanel 
-  :: (Ptr RawTH3I) -> IO ()
-foreign import ccall "HROOT.h TH3I_GetNdivisions" c_th3i_getndivisions 
-  :: (Ptr RawTH3I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3I_GetAxisColor" c_th3i_getaxiscolor 
-  :: (Ptr RawTH3I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3I_GetLabelColor" c_th3i_getlabelcolor 
-  :: (Ptr RawTH3I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3I_GetLabelFont" c_th3i_getlabelfont 
-  :: (Ptr RawTH3I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3I_GetLabelOffset" c_th3i_getlabeloffset 
-  :: (Ptr RawTH3I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetLabelSize" c_th3i_getlabelsize 
-  :: (Ptr RawTH3I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetTitleFont" c_th3i_gettitlefont 
-  :: (Ptr RawTH3I) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3I_GetTitleOffset" c_th3i_gettitleoffset 
-  :: (Ptr RawTH3I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetTitleSize" c_th3i_gettitlesize 
-  :: (Ptr RawTH3I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetTickLength" c_th3i_getticklength 
-  :: (Ptr RawTH3I) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBarOffset" c_th3i_getbaroffset 
-  :: (Ptr RawTH3I) -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBarWidth" c_th3i_getbarwidth 
-  :: (Ptr RawTH3I) -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetContour" c_th3i_getcontour 
-  :: (Ptr RawTH3I) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH3I_GetContourLevel" c_th3i_getcontourlevel 
-  :: (Ptr RawTH3I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetContourLevelPad" c_th3i_getcontourlevelpad 
-  :: (Ptr RawTH3I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBin" c_th3i_getbin 
-  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3I_GetBinCenter" c_th3i_getbincenter 
-  :: (Ptr RawTH3I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBinContent1" c_th3i_getbincontent1 
-  :: (Ptr RawTH3I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBinContent2" c_th3i_getbincontent2 
-  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBinContent3" c_th3i_getbincontent3 
-  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBinError1" c_th3i_getbinerror1 
-  :: (Ptr RawTH3I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBinError2" c_th3i_getbinerror2 
-  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBinError3" c_th3i_getbinerror3 
-  :: (Ptr RawTH3I) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBinLowEdge" c_th3i_getbinlowedge 
-  :: (Ptr RawTH3I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetBinWidth" c_th3i_getbinwidth 
-  :: (Ptr RawTH3I) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetCellContent" c_th3i_getcellcontent 
-  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_GetCellError" c_th3i_getcellerror 
-  :: (Ptr RawTH3I) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3I_SetTitle" c_th3i_settitle 
-  :: (Ptr RawTH3I) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3I_SetLineColor" c_th3i_setlinecolor 
-  :: (Ptr RawTH3I) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3I_SetFillColor" c_th3i_setfillcolor 
-  :: (Ptr RawTH3I) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3I_SetFillStyle" c_th3i_setfillstyle 
-  :: (Ptr RawTH3I) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3I_GetName" c_th3i_getname 
-  :: (Ptr RawTH3I) -> IO CString
-foreign import ccall "HROOT.h TH3I_Draw" c_th3i_draw 
-  :: (Ptr RawTH3I) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3I_FindObject" c_th3i_findobject 
-  :: (Ptr RawTH3I) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH3I_SaveAs" c_th3i_saveas 
-  :: (Ptr RawTH3I) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH3I_Write" c_th3i_write 
-  :: (Ptr RawTH3I) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3I_delete" c_th3i_delete 
-  :: (Ptr RawTH3I) -> IO ()
-
-foreign import ccall "HROOT.h TH3S_Add" c_th3s_add 
-  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3S_AddBinContent" c_th3s_addbincontent 
-  :: (Ptr RawTH3S) -> CInt -> CDouble -> IO ()
-foreign import ccall "HROOT.h TH3S_Chi2Test" c_th3s_chi2test 
-  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CString -> (Ptr CDouble) -> IO CDouble
-foreign import ccall "HROOT.h TH3S_ComputeIntegral" c_th3s_computeintegral 
-  :: (Ptr RawTH3S) -> IO CDouble
-foreign import ccall "HROOT.h TH3S_DirectoryAutoAdd" c_th3s_directoryautoadd 
-  :: (Ptr RawTH3S) -> (Ptr RawTDirectory) -> IO ()
-foreign import ccall "HROOT.h TH3S_DistancetoPrimitive" c_th3s_distancetoprimitive 
-  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3S_Divide" c_th3s_divide 
-  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> (Ptr RawTH2) -> CDouble -> CDouble -> CString -> IO ()
-foreign import ccall "HROOT.h TH3S_DrawCopy" c_th3s_drawcopy 
-  :: (Ptr RawTH3S) -> CString -> IO (Ptr RawTH3S)
-foreign import ccall "HROOT.h TH3S_DrawNormalized" c_th3s_drawnormalized 
-  :: (Ptr RawTH3S) -> CString -> CDouble -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3S_DrawPanel" c_th3s_drawpanel 
-  :: (Ptr RawTH3S) -> IO ()
-foreign import ccall "HROOT.h TH3S_BufferEmpty" c_th3s_bufferempty 
-  :: (Ptr RawTH3S) -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3S_Eval" c_th3s_eval 
-  :: (Ptr RawTH3S) -> (Ptr RawTF1) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3S_ExecuteEvent" c_th3s_executeevent 
-  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3S_FFT" c_th3s_fft 
-  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CString -> IO (Ptr RawTH1)
-foreign import ccall "HROOT.h TH3S_fill1" c_th3s_fill1 
-  :: (Ptr RawTH3S) -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3S_FillN" c_th3s_filln 
-  :: (Ptr RawTH3S) -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3S_FillRandom" c_th3s_fillrandom 
-  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3S_FindBin" c_th3s_findbin 
-  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3S_FindFixBin" c_th3s_findfixbin 
-  :: (Ptr RawTH3S) -> CDouble -> CDouble -> CDouble -> IO CInt
-foreign import ccall "HROOT.h TH3S_FindFirstBinAbove" c_th3s_findfirstbinabove 
-  :: (Ptr RawTH3S) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3S_FindLastBinAbove" c_th3s_findlastbinabove 
-  :: (Ptr RawTH3S) -> CDouble -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3S_FitPanel" c_th3s_fitpanel 
-  :: (Ptr RawTH3S) -> IO ()
-foreign import ccall "HROOT.h TH3S_GetNdivisions" c_th3s_getndivisions 
-  :: (Ptr RawTH3S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3S_GetAxisColor" c_th3s_getaxiscolor 
-  :: (Ptr RawTH3S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3S_GetLabelColor" c_th3s_getlabelcolor 
-  :: (Ptr RawTH3S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3S_GetLabelFont" c_th3s_getlabelfont 
-  :: (Ptr RawTH3S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3S_GetLabelOffset" c_th3s_getlabeloffset 
-  :: (Ptr RawTH3S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetLabelSize" c_th3s_getlabelsize 
-  :: (Ptr RawTH3S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetTitleFont" c_th3s_gettitlefont 
-  :: (Ptr RawTH3S) -> CString -> IO CInt
-foreign import ccall "HROOT.h TH3S_GetTitleOffset" c_th3s_gettitleoffset 
-  :: (Ptr RawTH3S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetTitleSize" c_th3s_gettitlesize 
-  :: (Ptr RawTH3S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetTickLength" c_th3s_getticklength 
-  :: (Ptr RawTH3S) -> CString -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBarOffset" c_th3s_getbaroffset 
-  :: (Ptr RawTH3S) -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBarWidth" c_th3s_getbarwidth 
-  :: (Ptr RawTH3S) -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetContour" c_th3s_getcontour 
-  :: (Ptr RawTH3S) -> (Ptr CDouble) -> IO CInt
-foreign import ccall "HROOT.h TH3S_GetContourLevel" c_th3s_getcontourlevel 
-  :: (Ptr RawTH3S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetContourLevelPad" c_th3s_getcontourlevelpad 
-  :: (Ptr RawTH3S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBin" c_th3s_getbin 
-  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3S_GetBinCenter" c_th3s_getbincenter 
-  :: (Ptr RawTH3S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBinContent1" c_th3s_getbincontent1 
-  :: (Ptr RawTH3S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBinContent2" c_th3s_getbincontent2 
-  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBinContent3" c_th3s_getbincontent3 
-  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBinError1" c_th3s_getbinerror1 
-  :: (Ptr RawTH3S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBinError2" c_th3s_getbinerror2 
-  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBinError3" c_th3s_getbinerror3 
-  :: (Ptr RawTH3S) -> CInt -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBinLowEdge" c_th3s_getbinlowedge 
-  :: (Ptr RawTH3S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetBinWidth" c_th3s_getbinwidth 
-  :: (Ptr RawTH3S) -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetCellContent" c_th3s_getcellcontent 
-  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_GetCellError" c_th3s_getcellerror 
-  :: (Ptr RawTH3S) -> CInt -> CInt -> IO CDouble
-foreign import ccall "HROOT.h TH3S_SetTitle" c_th3s_settitle 
-  :: (Ptr RawTH3S) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3S_SetLineColor" c_th3s_setlinecolor 
-  :: (Ptr RawTH3S) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3S_SetFillColor" c_th3s_setfillcolor 
-  :: (Ptr RawTH3S) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3S_SetFillStyle" c_th3s_setfillstyle 
-  :: (Ptr RawTH3S) -> CInt -> IO ()
-foreign import ccall "HROOT.h TH3S_GetName" c_th3s_getname 
-  :: (Ptr RawTH3S) -> IO CString
-foreign import ccall "HROOT.h TH3S_Draw" c_th3s_draw 
-  :: (Ptr RawTH3S) -> CString -> IO ()
-foreign import ccall "HROOT.h TH3S_FindObject" c_th3s_findobject 
-  :: (Ptr RawTH3S) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TH3S_SaveAs" c_th3s_saveas 
-  :: (Ptr RawTH3S) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TH3S_Write" c_th3s_write 
-  :: (Ptr RawTH3S) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TH3S_delete" c_th3s_delete 
-  :: (Ptr RawTH3S) -> IO ()
-
-foreign import ccall "HROOT.h TQObject_delete" c_tqobject_delete 
-  :: (Ptr RawTQObject) -> IO ()
-
-foreign import ccall "HROOT.h TVirtualPad_GetName" c_tvirtualpad_getname 
-  :: (Ptr RawTVirtualPad) -> IO CString
-foreign import ccall "HROOT.h TVirtualPad_Draw" c_tvirtualpad_draw 
-  :: (Ptr RawTVirtualPad) -> CString -> IO ()
-foreign import ccall "HROOT.h TVirtualPad_FindObject" c_tvirtualpad_findobject 
-  :: (Ptr RawTVirtualPad) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TVirtualPad_SaveAs" c_tvirtualpad_saveas 
-  :: (Ptr RawTVirtualPad) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TVirtualPad_Write" c_tvirtualpad_write 
-  :: (Ptr RawTVirtualPad) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TVirtualPad_SetLineColor" c_tvirtualpad_setlinecolor 
-  :: (Ptr RawTVirtualPad) -> CInt -> IO ()
-foreign import ccall "HROOT.h TVirtualPad_SetFillColor" c_tvirtualpad_setfillcolor 
-  :: (Ptr RawTVirtualPad) -> CInt -> IO ()
-foreign import ccall "HROOT.h TVirtualPad_SetFillStyle" c_tvirtualpad_setfillstyle 
-  :: (Ptr RawTVirtualPad) -> CInt -> IO ()
-foreign import ccall "HROOT.h TVirtualPad_delete" c_tvirtualpad_delete 
-  :: (Ptr RawTVirtualPad) -> IO ()
-foreign import ccall "HROOT.h TVirtualPad_GetFrame" c_tvirtualpad_getframe 
-  :: (Ptr RawTVirtualPad) -> IO (Ptr RawTFrame)
-foreign import ccall "HROOT.h TVirtualPad_Range" c_tvirtualpad_range 
-  :: (Ptr RawTVirtualPad) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
-
-foreign import ccall "HROOT.h TPad_GetFrame" c_tpad_getframe 
-  :: (Ptr RawTPad) -> IO (Ptr RawTFrame)
-foreign import ccall "HROOT.h TPad_Range" c_tpad_range 
-  :: (Ptr RawTPad) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
-foreign import ccall "HROOT.h TPad_GetName" c_tpad_getname 
-  :: (Ptr RawTPad) -> IO CString
-foreign import ccall "HROOT.h TPad_Draw" c_tpad_draw 
-  :: (Ptr RawTPad) -> CString -> IO ()
-foreign import ccall "HROOT.h TPad_FindObject" c_tpad_findobject 
-  :: (Ptr RawTPad) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TPad_SaveAs" c_tpad_saveas 
-  :: (Ptr RawTPad) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TPad_Write" c_tpad_write 
-  :: (Ptr RawTPad) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TPad_SetLineColor" c_tpad_setlinecolor 
-  :: (Ptr RawTPad) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPad_SetFillColor" c_tpad_setfillcolor 
-  :: (Ptr RawTPad) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPad_SetFillStyle" c_tpad_setfillstyle 
-  :: (Ptr RawTPad) -> CInt -> IO ()
-foreign import ccall "HROOT.h TPad_delete" c_tpad_delete 
-  :: (Ptr RawTPad) -> IO ()
-
-foreign import ccall "HROOT.h TButton_SetTextColor" c_tbutton_settextcolor 
-  :: (Ptr RawTButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TButton_SetTextAlign" c_tbutton_settextalign 
-  :: (Ptr RawTButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TButton_SetTextSize" c_tbutton_settextsize 
-  :: (Ptr RawTButton) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TButton_GetFrame" c_tbutton_getframe 
-  :: (Ptr RawTButton) -> IO (Ptr RawTFrame)
-foreign import ccall "HROOT.h TButton_Range" c_tbutton_range 
-  :: (Ptr RawTButton) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
-foreign import ccall "HROOT.h TButton_GetName" c_tbutton_getname 
-  :: (Ptr RawTButton) -> IO CString
-foreign import ccall "HROOT.h TButton_Draw" c_tbutton_draw 
-  :: (Ptr RawTButton) -> CString -> IO ()
-foreign import ccall "HROOT.h TButton_FindObject" c_tbutton_findobject 
-  :: (Ptr RawTButton) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TButton_SaveAs" c_tbutton_saveas 
-  :: (Ptr RawTButton) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TButton_Write" c_tbutton_write 
-  :: (Ptr RawTButton) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TButton_SetLineColor" c_tbutton_setlinecolor 
-  :: (Ptr RawTButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TButton_SetFillColor" c_tbutton_setfillcolor 
-  :: (Ptr RawTButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TButton_SetFillStyle" c_tbutton_setfillstyle 
-  :: (Ptr RawTButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TButton_delete" c_tbutton_delete 
-  :: (Ptr RawTButton) -> IO ()
-
-foreign import ccall "HROOT.h TGroupButton_SetTextColor" c_tgroupbutton_settextcolor 
-  :: (Ptr RawTGroupButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGroupButton_SetTextAlign" c_tgroupbutton_settextalign 
-  :: (Ptr RawTGroupButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGroupButton_SetTextSize" c_tgroupbutton_settextsize 
-  :: (Ptr RawTGroupButton) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TGroupButton_GetFrame" c_tgroupbutton_getframe 
-  :: (Ptr RawTGroupButton) -> IO (Ptr RawTFrame)
-foreign import ccall "HROOT.h TGroupButton_Range" c_tgroupbutton_range 
-  :: (Ptr RawTGroupButton) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
-foreign import ccall "HROOT.h TGroupButton_GetName" c_tgroupbutton_getname 
-  :: (Ptr RawTGroupButton) -> IO CString
-foreign import ccall "HROOT.h TGroupButton_Draw" c_tgroupbutton_draw 
-  :: (Ptr RawTGroupButton) -> CString -> IO ()
-foreign import ccall "HROOT.h TGroupButton_FindObject" c_tgroupbutton_findobject 
-  :: (Ptr RawTGroupButton) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TGroupButton_SaveAs" c_tgroupbutton_saveas 
-  :: (Ptr RawTGroupButton) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TGroupButton_Write" c_tgroupbutton_write 
-  :: (Ptr RawTGroupButton) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TGroupButton_SetLineColor" c_tgroupbutton_setlinecolor 
-  :: (Ptr RawTGroupButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGroupButton_SetFillColor" c_tgroupbutton_setfillcolor 
-  :: (Ptr RawTGroupButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGroupButton_SetFillStyle" c_tgroupbutton_setfillstyle 
-  :: (Ptr RawTGroupButton) -> CInt -> IO ()
-foreign import ccall "HROOT.h TGroupButton_delete" c_tgroupbutton_delete 
-  :: (Ptr RawTGroupButton) -> IO ()
-
-foreign import ccall "HROOT.h TCanvas_GetFrame" c_tcanvas_getframe 
-  :: (Ptr RawTCanvas) -> IO (Ptr RawTFrame)
-foreign import ccall "HROOT.h TCanvas_Range" c_tcanvas_range 
-  :: (Ptr RawTCanvas) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
-foreign import ccall "HROOT.h TCanvas_GetName" c_tcanvas_getname 
-  :: (Ptr RawTCanvas) -> IO CString
-foreign import ccall "HROOT.h TCanvas_Draw" c_tcanvas_draw 
-  :: (Ptr RawTCanvas) -> CString -> IO ()
-foreign import ccall "HROOT.h TCanvas_FindObject" c_tcanvas_findobject 
-  :: (Ptr RawTCanvas) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TCanvas_SaveAs" c_tcanvas_saveas 
-  :: (Ptr RawTCanvas) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TCanvas_Write" c_tcanvas_write 
-  :: (Ptr RawTCanvas) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TCanvas_SetLineColor" c_tcanvas_setlinecolor 
-  :: (Ptr RawTCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCanvas_SetFillColor" c_tcanvas_setfillcolor 
-  :: (Ptr RawTCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCanvas_SetFillStyle" c_tcanvas_setfillstyle 
-  :: (Ptr RawTCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TCanvas_delete" c_tcanvas_delete 
-  :: (Ptr RawTCanvas) -> IO ()
-foreign import ccall "HROOT.h TCanvas_newTCanvas" c_tcanvas_newtcanvas 
-  :: CString -> CString -> CInt -> CInt -> IO (Ptr RawTCanvas)
-
-foreign import ccall "HROOT.h TDialogCanvas_SetTextColor" c_tdialogcanvas_settextcolor 
-  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDialogCanvas_SetTextAlign" c_tdialogcanvas_settextalign 
-  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDialogCanvas_SetTextSize" c_tdialogcanvas_settextsize 
-  :: (Ptr RawTDialogCanvas) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TDialogCanvas_GetFrame" c_tdialogcanvas_getframe 
-  :: (Ptr RawTDialogCanvas) -> IO (Ptr RawTFrame)
-foreign import ccall "HROOT.h TDialogCanvas_Range" c_tdialogcanvas_range 
-  :: (Ptr RawTDialogCanvas) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
-foreign import ccall "HROOT.h TDialogCanvas_GetName" c_tdialogcanvas_getname 
-  :: (Ptr RawTDialogCanvas) -> IO CString
-foreign import ccall "HROOT.h TDialogCanvas_Draw" c_tdialogcanvas_draw 
-  :: (Ptr RawTDialogCanvas) -> CString -> IO ()
-foreign import ccall "HROOT.h TDialogCanvas_FindObject" c_tdialogcanvas_findobject 
-  :: (Ptr RawTDialogCanvas) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TDialogCanvas_SaveAs" c_tdialogcanvas_saveas 
-  :: (Ptr RawTDialogCanvas) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TDialogCanvas_Write" c_tdialogcanvas_write 
-  :: (Ptr RawTDialogCanvas) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TDialogCanvas_SetLineColor" c_tdialogcanvas_setlinecolor 
-  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDialogCanvas_SetFillColor" c_tdialogcanvas_setfillcolor 
-  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDialogCanvas_SetFillStyle" c_tdialogcanvas_setfillstyle 
-  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TDialogCanvas_delete" c_tdialogcanvas_delete 
-  :: (Ptr RawTDialogCanvas) -> IO ()
-
-foreign import ccall "HROOT.h TInspectCanvas_SetTextColor" c_tinspectcanvas_settextcolor 
-  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TInspectCanvas_SetTextAlign" c_tinspectcanvas_settextalign 
-  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TInspectCanvas_SetTextSize" c_tinspectcanvas_settextsize 
-  :: (Ptr RawTInspectCanvas) -> CDouble -> IO ()
-foreign import ccall "HROOT.h TInspectCanvas_GetFrame" c_tinspectcanvas_getframe 
-  :: (Ptr RawTInspectCanvas) -> IO (Ptr RawTFrame)
-foreign import ccall "HROOT.h TInspectCanvas_Range" c_tinspectcanvas_range 
-  :: (Ptr RawTInspectCanvas) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
-foreign import ccall "HROOT.h TInspectCanvas_GetName" c_tinspectcanvas_getname 
-  :: (Ptr RawTInspectCanvas) -> IO CString
-foreign import ccall "HROOT.h TInspectCanvas_Draw" c_tinspectcanvas_draw 
-  :: (Ptr RawTInspectCanvas) -> CString -> IO ()
-foreign import ccall "HROOT.h TInspectCanvas_FindObject" c_tinspectcanvas_findobject 
-  :: (Ptr RawTInspectCanvas) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TInspectCanvas_SaveAs" c_tinspectcanvas_saveas 
-  :: (Ptr RawTInspectCanvas) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TInspectCanvas_Write" c_tinspectcanvas_write 
-  :: (Ptr RawTInspectCanvas) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TInspectCanvas_SetLineColor" c_tinspectcanvas_setlinecolor 
-  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TInspectCanvas_SetFillColor" c_tinspectcanvas_setfillcolor 
-  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TInspectCanvas_SetFillStyle" c_tinspectcanvas_setfillstyle 
-  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
-foreign import ccall "HROOT.h TInspectCanvas_delete" c_tinspectcanvas_delete 
-  :: (Ptr RawTInspectCanvas) -> IO ()
-
-foreign import ccall "HROOT.h TEvePad_GetFrame" c_tevepad_getframe 
-  :: (Ptr RawTEvePad) -> IO (Ptr RawTFrame)
-foreign import ccall "HROOT.h TEvePad_Range" c_tevepad_range 
-  :: (Ptr RawTEvePad) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
-foreign import ccall "HROOT.h TEvePad_GetName" c_tevepad_getname 
-  :: (Ptr RawTEvePad) -> IO CString
-foreign import ccall "HROOT.h TEvePad_Draw" c_tevepad_draw 
-  :: (Ptr RawTEvePad) -> CString -> IO ()
-foreign import ccall "HROOT.h TEvePad_FindObject" c_tevepad_findobject 
-  :: (Ptr RawTEvePad) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TEvePad_SaveAs" c_tevepad_saveas 
-  :: (Ptr RawTEvePad) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TEvePad_Write" c_tevepad_write 
-  :: (Ptr RawTEvePad) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TEvePad_SetLineColor" c_tevepad_setlinecolor 
-  :: (Ptr RawTEvePad) -> CInt -> IO ()
-foreign import ccall "HROOT.h TEvePad_SetFillColor" c_tevepad_setfillcolor 
-  :: (Ptr RawTEvePad) -> CInt -> IO ()
-foreign import ccall "HROOT.h TEvePad_SetFillStyle" c_tevepad_setfillstyle 
-  :: (Ptr RawTEvePad) -> CInt -> IO ()
-foreign import ccall "HROOT.h TEvePad_delete" c_tevepad_delete 
-  :: (Ptr RawTEvePad) -> IO ()
-
-foreign import ccall "HROOT.h TSlider_GetFrame" c_tslider_getframe 
-  :: (Ptr RawTSlider) -> IO (Ptr RawTFrame)
-foreign import ccall "HROOT.h TSlider_Range" c_tslider_range 
-  :: (Ptr RawTSlider) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
-foreign import ccall "HROOT.h TSlider_GetName" c_tslider_getname 
-  :: (Ptr RawTSlider) -> IO CString
-foreign import ccall "HROOT.h TSlider_Draw" c_tslider_draw 
-  :: (Ptr RawTSlider) -> CString -> IO ()
-foreign import ccall "HROOT.h TSlider_FindObject" c_tslider_findobject 
-  :: (Ptr RawTSlider) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TSlider_SaveAs" c_tslider_saveas 
-  :: (Ptr RawTSlider) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TSlider_Write" c_tslider_write 
-  :: (Ptr RawTSlider) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TSlider_SetLineColor" c_tslider_setlinecolor 
-  :: (Ptr RawTSlider) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSlider_SetFillColor" c_tslider_setfillcolor 
-  :: (Ptr RawTSlider) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSlider_SetFillStyle" c_tslider_setfillstyle 
-  :: (Ptr RawTSlider) -> CInt -> IO ()
-foreign import ccall "HROOT.h TSlider_delete" c_tslider_delete 
-  :: (Ptr RawTSlider) -> IO ()
-
-foreign import ccall "HROOT.h TApplication_GetName" c_tapplication_getname 
-  :: (Ptr RawTApplication) -> IO CString
-foreign import ccall "HROOT.h TApplication_Draw" c_tapplication_draw 
-  :: (Ptr RawTApplication) -> CString -> IO ()
-foreign import ccall "HROOT.h TApplication_FindObject" c_tapplication_findobject 
-  :: (Ptr RawTApplication) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TApplication_SaveAs" c_tapplication_saveas 
-  :: (Ptr RawTApplication) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TApplication_Write" c_tapplication_write 
-  :: (Ptr RawTApplication) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TApplication_delete" c_tapplication_delete 
-  :: (Ptr RawTApplication) -> IO ()
-foreign import ccall "HROOT.h TApplication_newTApplication" c_tapplication_newtapplication 
-  :: CString -> (Ptr CInt) -> (Ptr (CString)) -> IO (Ptr RawTApplication)
-foreign import ccall "HROOT.h TApplication_Run" c_tapplication_run 
-  :: (Ptr RawTApplication) -> CInt -> IO ()
-
-foreign import ccall "HROOT.h TRint_Run" c_trint_run 
-  :: (Ptr RawTRint) -> CInt -> IO ()
-foreign import ccall "HROOT.h TRint_GetName" c_trint_getname 
-  :: (Ptr RawTRint) -> IO CString
-foreign import ccall "HROOT.h TRint_Draw" c_trint_draw 
-  :: (Ptr RawTRint) -> CString -> IO ()
-foreign import ccall "HROOT.h TRint_FindObject" c_trint_findobject 
-  :: (Ptr RawTRint) -> CString -> IO (Ptr RawTObject)
-foreign import ccall "HROOT.h TRint_SaveAs" c_trint_saveas 
-  :: (Ptr RawTRint) -> CString -> CString -> IO ()
-foreign import ccall "HROOT.h TRint_Write" c_trint_write 
-  :: (Ptr RawTRint) -> CString -> CInt -> CInt -> IO CInt
-foreign import ccall "HROOT.h TRint_delete" c_trint_delete 
-  :: (Ptr RawTRint) -> IO ()
-foreign import ccall "HROOT.h TRint_newTRint" c_trint_newtrint 
-  :: CString -> (Ptr CInt) -> (Ptr (CString)) -> IO (Ptr RawTRint)
-
diff --git a/src/HROOT/Type.hs b/src/HROOT/Type.hs
deleted file mode 100644
--- a/src/HROOT/Type.hs
+++ /dev/null
@@ -1,859 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, 
-             FlexibleInstances, TypeSynonymInstances, UndecidableInstances, 
-             EmptyDataDecls, IncoherentInstances #-}
-
-module HROOT.Type where
-
-import Foreign.C            
-import Foreign.Ptr
-import Foreign.ForeignPtr
-import Foreign.Marshal.Array
-
-
-import System.IO.Unsafe
-
-class Castable a b where
-  cast :: a -> b 
-  uncast :: b -> a 
-
-instance Castable a a where
-  cast = id
-  uncast = id
-
-instance Castable Int CInt where
-  cast = fromIntegral 
-  uncast = fromIntegral
-  
-instance Castable Double CDouble where
-  cast = realToFrac
-  uncast = realToFrac 
-
-instance Castable [Double] (Ptr CDouble) where
-  cast xs = unsafePerformIO (newArray (map realToFrac xs))
-  uncast _c_xs = undefined 
-
-instance Castable [Int] (Ptr CInt) where
-  cast xs = unsafePerformIO (newArray (map fromIntegral xs))
-  uncast _c_xs = undefined 
-
-instance Castable String CString where
-  cast x = unsafePerformIO (newCString x)
-  uncast x = unsafePerformIO (peekCString x) 
-
-instance Castable [String] (Ptr CString) where
-  cast xs = unsafePerformIO (mapM  newCString xs >>= newArray)
-  uncast _c_xs = undefined
-
-
-instance (FPtr a, Ptr (Raw a) ~ ptrrawa) => Castable a ptrrawa where
-  cast = unsafeForeignPtrToPtr.get_fptr
-  uncast x = cast_fptr_to_obj (unsafePerformIO (newForeignPtr_ x)) 
-
-instance (Castable a a', Castable b b') => Castable (a->b) (a'->b') where
-  cast f = cast . f . uncast
-  uncast f = uncast . f . cast 
-
-
-xformnull :: (Castable a ca) => (IO ca) -> IO a
-xformnull f = f >>= return . uncast
-
-xform0 :: (Castable a ca, Castable y cy) 
-       => (ca -> IO cy) -> a -> IO y
-xform0 f a = f (cast a) >>= return . uncast 
-
-xform1 :: (Castable a ca, Castable x1 cx1, Castable y cy) 
-       => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y
-xform1 f a x1 = f (cast a) (cast x1) >>= return . uncast 
-
-xform2 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) 
-       => (ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2-> IO y
-xform2 f a x1 x2 = f (cast a) (cast x1) (cast x2) >>= return . uncast 
-
-xform3 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable y cy) 
-       => (ca -> cx1 -> cx2 -> cx3 -> IO cy) -> a -> x1 -> x2 -> x3 -> IO y
-xform3 f a x1 x2 x3 = f (cast a) (cast x1) (cast x2) (cast x3) >>= return . uncast 
-
-xform4 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable y cy) 
-       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> IO y
-xform4 f a x1 x2 x3 x4 = f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) >>= return . uncast 
-
-xform5 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
-           Castable x5 cx5, Castable y cy) 
-       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y
-xform5 f a x1 x2 x3 x4 x5 = f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) >>= return . uncast 
-
-xform6 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
-           Castable x5 cx5, Castable x6 cx6, Castable y cy) 
-       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> IO cy) 
-          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> IO y
-xform6 f a x1 x2 x3 x4 x5 x6 = 
-  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) 
-  >>= return . uncast 
-
-xform7 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
-           Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable y cy) 
-       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> IO cy) 
-          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> IO y
-xform7 f a x1 x2 x3 x4 x5 x6 x7 = 
-  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7)
-  >>= return . uncast 
-
-xform8 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
-           Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable y cy) 
-       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> IO cy) 
-          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> IO y
-xform8 f a x1 x2 x3 x4 x5 x6 x7 x8 = 
-  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7) (cast x8)
-  >>= return . uncast 
-
-xform9 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
-           Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9, 
-           Castable y cy) 
-       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> IO cy) 
-          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> IO y
-xform9 f a x1 x2 x3 x4 x5 x6 x7 x8 x9 = 
-  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7) (cast x8) (cast x9)
-  >>= return . uncast 
-
-xform10 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
-            Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9,  
-            Castable x10 cx10, Castable y cy) 
-       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> cx10 -> IO cy) 
-          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> x10 -> IO y
-xform10 f a x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 = 
-  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7) (cast x8) (cast x9) (cast x10) >>= return . uncast 
-
-
-
-class FPtr a where
-    type Raw a :: *
-    get_fptr :: a -> ForeignPtr (Raw a) 
-    cast_fptr_to_obj :: ForeignPtr (Raw a) -> a
-
-data RawTObject
-newtype TObject = TObject (ForeignPtr RawTObject) deriving (Eq, Ord, Show)
-instance FPtr TObject where
-   type Raw TObject = RawTObject
-   get_fptr (TObject fptr) = fptr
-   cast_fptr_to_obj = TObject
-
-data RawTNamed
-newtype TNamed = TNamed (ForeignPtr RawTNamed) deriving (Eq, Ord, Show)
-instance FPtr TNamed where
-   type Raw TNamed = RawTNamed
-   get_fptr (TNamed fptr) = fptr
-   cast_fptr_to_obj = TNamed
-
-data RawTFormula
-newtype TFormula = TFormula (ForeignPtr RawTFormula) deriving (Eq, Ord, Show)
-instance FPtr TFormula where
-   type Raw TFormula = RawTFormula
-   get_fptr (TFormula fptr) = fptr
-   cast_fptr_to_obj = TFormula
-
-data RawTAtt3D
-newtype TAtt3D = TAtt3D (ForeignPtr RawTAtt3D) deriving (Eq, Ord, Show)
-instance FPtr TAtt3D where
-   type Raw TAtt3D = RawTAtt3D
-   get_fptr (TAtt3D fptr) = fptr
-   cast_fptr_to_obj = TAtt3D
-
-data RawTAttAxis
-newtype TAttAxis = TAttAxis (ForeignPtr RawTAttAxis) deriving (Eq, Ord, Show)
-instance FPtr TAttAxis where
-   type Raw TAttAxis = RawTAttAxis
-   get_fptr (TAttAxis fptr) = fptr
-   cast_fptr_to_obj = TAttAxis
-
-data RawTAttBBox
-newtype TAttBBox = TAttBBox (ForeignPtr RawTAttBBox) deriving (Eq, Ord, Show)
-instance FPtr TAttBBox where
-   type Raw TAttBBox = RawTAttBBox
-   get_fptr (TAttBBox fptr) = fptr
-   cast_fptr_to_obj = TAttBBox
-
-data RawTAttCanvas
-newtype TAttCanvas = TAttCanvas (ForeignPtr RawTAttCanvas) deriving (Eq, Ord, Show)
-instance FPtr TAttCanvas where
-   type Raw TAttCanvas = RawTAttCanvas
-   get_fptr (TAttCanvas fptr) = fptr
-   cast_fptr_to_obj = TAttCanvas
-
-data RawTAttFill
-newtype TAttFill = TAttFill (ForeignPtr RawTAttFill) deriving (Eq, Ord, Show)
-instance FPtr TAttFill where
-   type Raw TAttFill = RawTAttFill
-   get_fptr (TAttFill fptr) = fptr
-   cast_fptr_to_obj = TAttFill
-
-data RawTAttImage
-newtype TAttImage = TAttImage (ForeignPtr RawTAttImage) deriving (Eq, Ord, Show)
-instance FPtr TAttImage where
-   type Raw TAttImage = RawTAttImage
-   get_fptr (TAttImage fptr) = fptr
-   cast_fptr_to_obj = TAttImage
-
-data RawTAttLine
-newtype TAttLine = TAttLine (ForeignPtr RawTAttLine) deriving (Eq, Ord, Show)
-instance FPtr TAttLine where
-   type Raw TAttLine = RawTAttLine
-   get_fptr (TAttLine fptr) = fptr
-   cast_fptr_to_obj = TAttLine
-
-data RawTAttMarker
-newtype TAttMarker = TAttMarker (ForeignPtr RawTAttMarker) deriving (Eq, Ord, Show)
-instance FPtr TAttMarker where
-   type Raw TAttMarker = RawTAttMarker
-   get_fptr (TAttMarker fptr) = fptr
-   cast_fptr_to_obj = TAttMarker
-
-data RawTAttPad
-newtype TAttPad = TAttPad (ForeignPtr RawTAttPad) deriving (Eq, Ord, Show)
-instance FPtr TAttPad where
-   type Raw TAttPad = RawTAttPad
-   get_fptr (TAttPad fptr) = fptr
-   cast_fptr_to_obj = TAttPad
-
-data RawTAttParticle
-newtype TAttParticle = TAttParticle (ForeignPtr RawTAttParticle) deriving (Eq, Ord, Show)
-instance FPtr TAttParticle where
-   type Raw TAttParticle = RawTAttParticle
-   get_fptr (TAttParticle fptr) = fptr
-   cast_fptr_to_obj = TAttParticle
-
-data RawTAttText
-newtype TAttText = TAttText (ForeignPtr RawTAttText) deriving (Eq, Ord, Show)
-instance FPtr TAttText where
-   type Raw TAttText = RawTAttText
-   get_fptr (TAttText fptr) = fptr
-   cast_fptr_to_obj = TAttText
-
-data RawTHStack
-newtype THStack = THStack (ForeignPtr RawTHStack) deriving (Eq, Ord, Show)
-instance FPtr THStack where
-   type Raw THStack = RawTHStack
-   get_fptr (THStack fptr) = fptr
-   cast_fptr_to_obj = THStack
-
-data RawTF1
-newtype TF1 = TF1 (ForeignPtr RawTF1) deriving (Eq, Ord, Show)
-instance FPtr TF1 where
-   type Raw TF1 = RawTF1
-   get_fptr (TF1 fptr) = fptr
-   cast_fptr_to_obj = TF1
-
-data RawTGraph
-newtype TGraph = TGraph (ForeignPtr RawTGraph) deriving (Eq, Ord, Show)
-instance FPtr TGraph where
-   type Raw TGraph = RawTGraph
-   get_fptr (TGraph fptr) = fptr
-   cast_fptr_to_obj = TGraph
-
-data RawTGraphAsymmErrors
-newtype TGraphAsymmErrors = TGraphAsymmErrors (ForeignPtr RawTGraphAsymmErrors) deriving (Eq, Ord, Show)
-instance FPtr TGraphAsymmErrors where
-   type Raw TGraphAsymmErrors = RawTGraphAsymmErrors
-   get_fptr (TGraphAsymmErrors fptr) = fptr
-   cast_fptr_to_obj = TGraphAsymmErrors
-
-data RawTCutG
-newtype TCutG = TCutG (ForeignPtr RawTCutG) deriving (Eq, Ord, Show)
-instance FPtr TCutG where
-   type Raw TCutG = RawTCutG
-   get_fptr (TCutG fptr) = fptr
-   cast_fptr_to_obj = TCutG
-
-data RawTGraphBentErrors
-newtype TGraphBentErrors = TGraphBentErrors (ForeignPtr RawTGraphBentErrors) deriving (Eq, Ord, Show)
-instance FPtr TGraphBentErrors where
-   type Raw TGraphBentErrors = RawTGraphBentErrors
-   get_fptr (TGraphBentErrors fptr) = fptr
-   cast_fptr_to_obj = TGraphBentErrors
-
-data RawTGraphErrors
-newtype TGraphErrors = TGraphErrors (ForeignPtr RawTGraphErrors) deriving (Eq, Ord, Show)
-instance FPtr TGraphErrors where
-   type Raw TGraphErrors = RawTGraphErrors
-   get_fptr (TGraphErrors fptr) = fptr
-   cast_fptr_to_obj = TGraphErrors
-
-data RawTGraphPolar
-newtype TGraphPolar = TGraphPolar (ForeignPtr RawTGraphPolar) deriving (Eq, Ord, Show)
-instance FPtr TGraphPolar where
-   type Raw TGraphPolar = RawTGraphPolar
-   get_fptr (TGraphPolar fptr) = fptr
-   cast_fptr_to_obj = TGraphPolar
-
-data RawTGraphQQ
-newtype TGraphQQ = TGraphQQ (ForeignPtr RawTGraphQQ) deriving (Eq, Ord, Show)
-instance FPtr TGraphQQ where
-   type Raw TGraphQQ = RawTGraphQQ
-   get_fptr (TGraphQQ fptr) = fptr
-   cast_fptr_to_obj = TGraphQQ
-
-data RawTEllipse
-newtype TEllipse = TEllipse (ForeignPtr RawTEllipse) deriving (Eq, Ord, Show)
-instance FPtr TEllipse where
-   type Raw TEllipse = RawTEllipse
-   get_fptr (TEllipse fptr) = fptr
-   cast_fptr_to_obj = TEllipse
-
-data RawTArc
-newtype TArc = TArc (ForeignPtr RawTArc) deriving (Eq, Ord, Show)
-instance FPtr TArc where
-   type Raw TArc = RawTArc
-   get_fptr (TArc fptr) = fptr
-   cast_fptr_to_obj = TArc
-
-data RawTCrown
-newtype TCrown = TCrown (ForeignPtr RawTCrown) deriving (Eq, Ord, Show)
-instance FPtr TCrown where
-   type Raw TCrown = RawTCrown
-   get_fptr (TCrown fptr) = fptr
-   cast_fptr_to_obj = TCrown
-
-data RawTLine
-newtype TLine = TLine (ForeignPtr RawTLine) deriving (Eq, Ord, Show)
-instance FPtr TLine where
-   type Raw TLine = RawTLine
-   get_fptr (TLine fptr) = fptr
-   cast_fptr_to_obj = TLine
-
-data RawTArrow
-newtype TArrow = TArrow (ForeignPtr RawTArrow) deriving (Eq, Ord, Show)
-instance FPtr TArrow where
-   type Raw TArrow = RawTArrow
-   get_fptr (TArrow fptr) = fptr
-   cast_fptr_to_obj = TArrow
-
-data RawTGaxis
-newtype TGaxis = TGaxis (ForeignPtr RawTGaxis) deriving (Eq, Ord, Show)
-instance FPtr TGaxis where
-   type Raw TGaxis = RawTGaxis
-   get_fptr (TGaxis fptr) = fptr
-   cast_fptr_to_obj = TGaxis
-
-data RawTShape
-newtype TShape = TShape (ForeignPtr RawTShape) deriving (Eq, Ord, Show)
-instance FPtr TShape where
-   type Raw TShape = RawTShape
-   get_fptr (TShape fptr) = fptr
-   cast_fptr_to_obj = TShape
-
-data RawTBRIK
-newtype TBRIK = TBRIK (ForeignPtr RawTBRIK) deriving (Eq, Ord, Show)
-instance FPtr TBRIK where
-   type Raw TBRIK = RawTBRIK
-   get_fptr (TBRIK fptr) = fptr
-   cast_fptr_to_obj = TBRIK
-
-data RawTTUBE
-newtype TTUBE = TTUBE (ForeignPtr RawTTUBE) deriving (Eq, Ord, Show)
-instance FPtr TTUBE where
-   type Raw TTUBE = RawTTUBE
-   get_fptr (TTUBE fptr) = fptr
-   cast_fptr_to_obj = TTUBE
-
-data RawTPCON
-newtype TPCON = TPCON (ForeignPtr RawTPCON) deriving (Eq, Ord, Show)
-instance FPtr TPCON where
-   type Raw TPCON = RawTPCON
-   get_fptr (TPCON fptr) = fptr
-   cast_fptr_to_obj = TPCON
-
-data RawTSPHE
-newtype TSPHE = TSPHE (ForeignPtr RawTSPHE) deriving (Eq, Ord, Show)
-instance FPtr TSPHE where
-   type Raw TSPHE = RawTSPHE
-   get_fptr (TSPHE fptr) = fptr
-   cast_fptr_to_obj = TSPHE
-
-data RawTXTRU
-newtype TXTRU = TXTRU (ForeignPtr RawTXTRU) deriving (Eq, Ord, Show)
-instance FPtr TXTRU where
-   type Raw TXTRU = RawTXTRU
-   get_fptr (TXTRU fptr) = fptr
-   cast_fptr_to_obj = TXTRU
-
-data RawTBox
-newtype TBox = TBox (ForeignPtr RawTBox) deriving (Eq, Ord, Show)
-instance FPtr TBox where
-   type Raw TBox = RawTBox
-   get_fptr (TBox fptr) = fptr
-   cast_fptr_to_obj = TBox
-
-data RawTPave
-newtype TPave = TPave (ForeignPtr RawTPave) deriving (Eq, Ord, Show)
-instance FPtr TPave where
-   type Raw TPave = RawTPave
-   get_fptr (TPave fptr) = fptr
-   cast_fptr_to_obj = TPave
-
-data RawTPaveText
-newtype TPaveText = TPaveText (ForeignPtr RawTPaveText) deriving (Eq, Ord, Show)
-instance FPtr TPaveText where
-   type Raw TPaveText = RawTPaveText
-   get_fptr (TPaveText fptr) = fptr
-   cast_fptr_to_obj = TPaveText
-
-data RawTDiamond
-newtype TDiamond = TDiamond (ForeignPtr RawTDiamond) deriving (Eq, Ord, Show)
-instance FPtr TDiamond where
-   type Raw TDiamond = RawTDiamond
-   get_fptr (TDiamond fptr) = fptr
-   cast_fptr_to_obj = TDiamond
-
-data RawTPaveStats
-newtype TPaveStats = TPaveStats (ForeignPtr RawTPaveStats) deriving (Eq, Ord, Show)
-instance FPtr TPaveStats where
-   type Raw TPaveStats = RawTPaveStats
-   get_fptr (TPaveStats fptr) = fptr
-   cast_fptr_to_obj = TPaveStats
-
-data RawTPavesText
-newtype TPavesText = TPavesText (ForeignPtr RawTPavesText) deriving (Eq, Ord, Show)
-instance FPtr TPavesText where
-   type Raw TPavesText = RawTPavesText
-   get_fptr (TPavesText fptr) = fptr
-   cast_fptr_to_obj = TPavesText
-
-data RawTLegend
-newtype TLegend = TLegend (ForeignPtr RawTLegend) deriving (Eq, Ord, Show)
-instance FPtr TLegend where
-   type Raw TLegend = RawTLegend
-   get_fptr (TLegend fptr) = fptr
-   cast_fptr_to_obj = TLegend
-
-data RawTPaveLabel
-newtype TPaveLabel = TPaveLabel (ForeignPtr RawTPaveLabel) deriving (Eq, Ord, Show)
-instance FPtr TPaveLabel where
-   type Raw TPaveLabel = RawTPaveLabel
-   get_fptr (TPaveLabel fptr) = fptr
-   cast_fptr_to_obj = TPaveLabel
-
-data RawTPaveClass
-newtype TPaveClass = TPaveClass (ForeignPtr RawTPaveClass) deriving (Eq, Ord, Show)
-instance FPtr TPaveClass where
-   type Raw TPaveClass = RawTPaveClass
-   get_fptr (TPaveClass fptr) = fptr
-   cast_fptr_to_obj = TPaveClass
-
-data RawTWbox
-newtype TWbox = TWbox (ForeignPtr RawTWbox) deriving (Eq, Ord, Show)
-instance FPtr TWbox where
-   type Raw TWbox = RawTWbox
-   get_fptr (TWbox fptr) = fptr
-   cast_fptr_to_obj = TWbox
-
-data RawTFrame
-newtype TFrame = TFrame (ForeignPtr RawTFrame) deriving (Eq, Ord, Show)
-instance FPtr TFrame where
-   type Raw TFrame = RawTFrame
-   get_fptr (TFrame fptr) = fptr
-   cast_fptr_to_obj = TFrame
-
-data RawTSliderBox
-newtype TSliderBox = TSliderBox (ForeignPtr RawTSliderBox) deriving (Eq, Ord, Show)
-instance FPtr TSliderBox where
-   type Raw TSliderBox = RawTSliderBox
-   get_fptr (TSliderBox fptr) = fptr
-   cast_fptr_to_obj = TSliderBox
-
-data RawTTree
-newtype TTree = TTree (ForeignPtr RawTTree) deriving (Eq, Ord, Show)
-instance FPtr TTree where
-   type Raw TTree = RawTTree
-   get_fptr (TTree fptr) = fptr
-   cast_fptr_to_obj = TTree
-
-data RawTChain
-newtype TChain = TChain (ForeignPtr RawTChain) deriving (Eq, Ord, Show)
-instance FPtr TChain where
-   type Raw TChain = RawTChain
-   get_fptr (TChain fptr) = fptr
-   cast_fptr_to_obj = TChain
-
-data RawTNtuple
-newtype TNtuple = TNtuple (ForeignPtr RawTNtuple) deriving (Eq, Ord, Show)
-instance FPtr TNtuple where
-   type Raw TNtuple = RawTNtuple
-   get_fptr (TNtuple fptr) = fptr
-   cast_fptr_to_obj = TNtuple
-
-data RawTNtupleD
-newtype TNtupleD = TNtupleD (ForeignPtr RawTNtupleD) deriving (Eq, Ord, Show)
-instance FPtr TNtupleD where
-   type Raw TNtupleD = RawTNtupleD
-   get_fptr (TNtupleD fptr) = fptr
-   cast_fptr_to_obj = TNtupleD
-
-data RawTTreeSQL
-newtype TTreeSQL = TTreeSQL (ForeignPtr RawTTreeSQL) deriving (Eq, Ord, Show)
-instance FPtr TTreeSQL where
-   type Raw TTreeSQL = RawTTreeSQL
-   get_fptr (TTreeSQL fptr) = fptr
-   cast_fptr_to_obj = TTreeSQL
-
-data RawTPolyLine
-newtype TPolyLine = TPolyLine (ForeignPtr RawTPolyLine) deriving (Eq, Ord, Show)
-instance FPtr TPolyLine where
-   type Raw TPolyLine = RawTPolyLine
-   get_fptr (TPolyLine fptr) = fptr
-   cast_fptr_to_obj = TPolyLine
-
-data RawTCurlyLine
-newtype TCurlyLine = TCurlyLine (ForeignPtr RawTCurlyLine) deriving (Eq, Ord, Show)
-instance FPtr TCurlyLine where
-   type Raw TCurlyLine = RawTCurlyLine
-   get_fptr (TCurlyLine fptr) = fptr
-   cast_fptr_to_obj = TCurlyLine
-
-data RawTCurlyArc
-newtype TCurlyArc = TCurlyArc (ForeignPtr RawTCurlyArc) deriving (Eq, Ord, Show)
-instance FPtr TCurlyArc where
-   type Raw TCurlyArc = RawTCurlyArc
-   get_fptr (TCurlyArc fptr) = fptr
-   cast_fptr_to_obj = TCurlyArc
-
-data RawTEfficiency
-newtype TEfficiency = TEfficiency (ForeignPtr RawTEfficiency) deriving (Eq, Ord, Show)
-instance FPtr TEfficiency where
-   type Raw TEfficiency = RawTEfficiency
-   get_fptr (TEfficiency fptr) = fptr
-   cast_fptr_to_obj = TEfficiency
-
-data RawTAxis
-newtype TAxis = TAxis (ForeignPtr RawTAxis) deriving (Eq, Ord, Show)
-instance FPtr TAxis where
-   type Raw TAxis = RawTAxis
-   get_fptr (TAxis fptr) = fptr
-   cast_fptr_to_obj = TAxis
-
-data RawTLatex
-newtype TLatex = TLatex (ForeignPtr RawTLatex) deriving (Eq, Ord, Show)
-instance FPtr TLatex where
-   type Raw TLatex = RawTLatex
-   get_fptr (TLatex fptr) = fptr
-   cast_fptr_to_obj = TLatex
-
-data RawTText
-newtype TText = TText (ForeignPtr RawTText) deriving (Eq, Ord, Show)
-instance FPtr TText where
-   type Raw TText = RawTText
-   get_fptr (TText fptr) = fptr
-   cast_fptr_to_obj = TText
-
-data RawTDirectory
-newtype TDirectory = TDirectory (ForeignPtr RawTDirectory) deriving (Eq, Ord, Show)
-instance FPtr TDirectory where
-   type Raw TDirectory = RawTDirectory
-   get_fptr (TDirectory fptr) = fptr
-   cast_fptr_to_obj = TDirectory
-
-data RawTDirectoryFile
-newtype TDirectoryFile = TDirectoryFile (ForeignPtr RawTDirectoryFile) deriving (Eq, Ord, Show)
-instance FPtr TDirectoryFile where
-   type Raw TDirectoryFile = RawTDirectoryFile
-   get_fptr (TDirectoryFile fptr) = fptr
-   cast_fptr_to_obj = TDirectoryFile
-
-data RawTFile
-newtype TFile = TFile (ForeignPtr RawTFile) deriving (Eq, Ord, Show)
-instance FPtr TFile where
-   type Raw TFile = RawTFile
-   get_fptr (TFile fptr) = fptr
-   cast_fptr_to_obj = TFile
-
-data RawTBranch
-newtype TBranch = TBranch (ForeignPtr RawTBranch) deriving (Eq, Ord, Show)
-instance FPtr TBranch where
-   type Raw TBranch = RawTBranch
-   get_fptr (TBranch fptr) = fptr
-   cast_fptr_to_obj = TBranch
-
-data RawTVirtualTreePlayer
-newtype TVirtualTreePlayer = TVirtualTreePlayer (ForeignPtr RawTVirtualTreePlayer) deriving (Eq, Ord, Show)
-instance FPtr TVirtualTreePlayer where
-   type Raw TVirtualTreePlayer = RawTVirtualTreePlayer
-   get_fptr (TVirtualTreePlayer fptr) = fptr
-   cast_fptr_to_obj = TVirtualTreePlayer
-
-data RawTTreePlayer
-newtype TTreePlayer = TTreePlayer (ForeignPtr RawTTreePlayer) deriving (Eq, Ord, Show)
-instance FPtr TTreePlayer where
-   type Raw TTreePlayer = RawTTreePlayer
-   get_fptr (TTreePlayer fptr) = fptr
-   cast_fptr_to_obj = TTreePlayer
-
-data RawTArray
-newtype TArray = TArray (ForeignPtr RawTArray) deriving (Eq, Ord, Show)
-instance FPtr TArray where
-   type Raw TArray = RawTArray
-   get_fptr (TArray fptr) = fptr
-   cast_fptr_to_obj = TArray
-
-data RawTArrayC
-newtype TArrayC = TArrayC (ForeignPtr RawTArrayC) deriving (Eq, Ord, Show)
-instance FPtr TArrayC where
-   type Raw TArrayC = RawTArrayC
-   get_fptr (TArrayC fptr) = fptr
-   cast_fptr_to_obj = TArrayC
-
-data RawTArrayD
-newtype TArrayD = TArrayD (ForeignPtr RawTArrayD) deriving (Eq, Ord, Show)
-instance FPtr TArrayD where
-   type Raw TArrayD = RawTArrayD
-   get_fptr (TArrayD fptr) = fptr
-   cast_fptr_to_obj = TArrayD
-
-data RawTArrayF
-newtype TArrayF = TArrayF (ForeignPtr RawTArrayF) deriving (Eq, Ord, Show)
-instance FPtr TArrayF where
-   type Raw TArrayF = RawTArrayF
-   get_fptr (TArrayF fptr) = fptr
-   cast_fptr_to_obj = TArrayF
-
-data RawTArrayI
-newtype TArrayI = TArrayI (ForeignPtr RawTArrayI) deriving (Eq, Ord, Show)
-instance FPtr TArrayI where
-   type Raw TArrayI = RawTArrayI
-   get_fptr (TArrayI fptr) = fptr
-   cast_fptr_to_obj = TArrayI
-
-data RawTArrayL
-newtype TArrayL = TArrayL (ForeignPtr RawTArrayL) deriving (Eq, Ord, Show)
-instance FPtr TArrayL where
-   type Raw TArrayL = RawTArrayL
-   get_fptr (TArrayL fptr) = fptr
-   cast_fptr_to_obj = TArrayL
-
-data RawTArrayL64
-newtype TArrayL64 = TArrayL64 (ForeignPtr RawTArrayL64) deriving (Eq, Ord, Show)
-instance FPtr TArrayL64 where
-   type Raw TArrayL64 = RawTArrayL64
-   get_fptr (TArrayL64 fptr) = fptr
-   cast_fptr_to_obj = TArrayL64
-
-data RawTArrayS
-newtype TArrayS = TArrayS (ForeignPtr RawTArrayS) deriving (Eq, Ord, Show)
-instance FPtr TArrayS where
-   type Raw TArrayS = RawTArrayS
-   get_fptr (TArrayS fptr) = fptr
-   cast_fptr_to_obj = TArrayS
-
-data RawTH1
-newtype TH1 = TH1 (ForeignPtr RawTH1) deriving (Eq, Ord, Show)
-instance FPtr TH1 where
-   type Raw TH1 = RawTH1
-   get_fptr (TH1 fptr) = fptr
-   cast_fptr_to_obj = TH1
-
-data RawTH2
-newtype TH2 = TH2 (ForeignPtr RawTH2) deriving (Eq, Ord, Show)
-instance FPtr TH2 where
-   type Raw TH2 = RawTH2
-   get_fptr (TH2 fptr) = fptr
-   cast_fptr_to_obj = TH2
-
-data RawTH3
-newtype TH3 = TH3 (ForeignPtr RawTH3) deriving (Eq, Ord, Show)
-instance FPtr TH3 where
-   type Raw TH3 = RawTH3
-   get_fptr (TH3 fptr) = fptr
-   cast_fptr_to_obj = TH3
-
-data RawTH1C
-newtype TH1C = TH1C (ForeignPtr RawTH1C) deriving (Eq, Ord, Show)
-instance FPtr TH1C where
-   type Raw TH1C = RawTH1C
-   get_fptr (TH1C fptr) = fptr
-   cast_fptr_to_obj = TH1C
-
-data RawTH1D
-newtype TH1D = TH1D (ForeignPtr RawTH1D) deriving (Eq, Ord, Show)
-instance FPtr TH1D where
-   type Raw TH1D = RawTH1D
-   get_fptr (TH1D fptr) = fptr
-   cast_fptr_to_obj = TH1D
-
-data RawTH1F
-newtype TH1F = TH1F (ForeignPtr RawTH1F) deriving (Eq, Ord, Show)
-instance FPtr TH1F where
-   type Raw TH1F = RawTH1F
-   get_fptr (TH1F fptr) = fptr
-   cast_fptr_to_obj = TH1F
-
-data RawTH1I
-newtype TH1I = TH1I (ForeignPtr RawTH1I) deriving (Eq, Ord, Show)
-instance FPtr TH1I where
-   type Raw TH1I = RawTH1I
-   get_fptr (TH1I fptr) = fptr
-   cast_fptr_to_obj = TH1I
-
-data RawTH1S
-newtype TH1S = TH1S (ForeignPtr RawTH1S) deriving (Eq, Ord, Show)
-instance FPtr TH1S where
-   type Raw TH1S = RawTH1S
-   get_fptr (TH1S fptr) = fptr
-   cast_fptr_to_obj = TH1S
-
-data RawTH2C
-newtype TH2C = TH2C (ForeignPtr RawTH2C) deriving (Eq, Ord, Show)
-instance FPtr TH2C where
-   type Raw TH2C = RawTH2C
-   get_fptr (TH2C fptr) = fptr
-   cast_fptr_to_obj = TH2C
-
-data RawTH2D
-newtype TH2D = TH2D (ForeignPtr RawTH2D) deriving (Eq, Ord, Show)
-instance FPtr TH2D where
-   type Raw TH2D = RawTH2D
-   get_fptr (TH2D fptr) = fptr
-   cast_fptr_to_obj = TH2D
-
-data RawTH2F
-newtype TH2F = TH2F (ForeignPtr RawTH2F) deriving (Eq, Ord, Show)
-instance FPtr TH2F where
-   type Raw TH2F = RawTH2F
-   get_fptr (TH2F fptr) = fptr
-   cast_fptr_to_obj = TH2F
-
-data RawTH2I
-newtype TH2I = TH2I (ForeignPtr RawTH2I) deriving (Eq, Ord, Show)
-instance FPtr TH2I where
-   type Raw TH2I = RawTH2I
-   get_fptr (TH2I fptr) = fptr
-   cast_fptr_to_obj = TH2I
-
-data RawTH2Poly
-newtype TH2Poly = TH2Poly (ForeignPtr RawTH2Poly) deriving (Eq, Ord, Show)
-instance FPtr TH2Poly where
-   type Raw TH2Poly = RawTH2Poly
-   get_fptr (TH2Poly fptr) = fptr
-   cast_fptr_to_obj = TH2Poly
-
-data RawTH2S
-newtype TH2S = TH2S (ForeignPtr RawTH2S) deriving (Eq, Ord, Show)
-instance FPtr TH2S where
-   type Raw TH2S = RawTH2S
-   get_fptr (TH2S fptr) = fptr
-   cast_fptr_to_obj = TH2S
-
-data RawTH3C
-newtype TH3C = TH3C (ForeignPtr RawTH3C) deriving (Eq, Ord, Show)
-instance FPtr TH3C where
-   type Raw TH3C = RawTH3C
-   get_fptr (TH3C fptr) = fptr
-   cast_fptr_to_obj = TH3C
-
-data RawTH3D
-newtype TH3D = TH3D (ForeignPtr RawTH3D) deriving (Eq, Ord, Show)
-instance FPtr TH3D where
-   type Raw TH3D = RawTH3D
-   get_fptr (TH3D fptr) = fptr
-   cast_fptr_to_obj = TH3D
-
-data RawTH3F
-newtype TH3F = TH3F (ForeignPtr RawTH3F) deriving (Eq, Ord, Show)
-instance FPtr TH3F where
-   type Raw TH3F = RawTH3F
-   get_fptr (TH3F fptr) = fptr
-   cast_fptr_to_obj = TH3F
-
-data RawTH3I
-newtype TH3I = TH3I (ForeignPtr RawTH3I) deriving (Eq, Ord, Show)
-instance FPtr TH3I where
-   type Raw TH3I = RawTH3I
-   get_fptr (TH3I fptr) = fptr
-   cast_fptr_to_obj = TH3I
-
-data RawTH3S
-newtype TH3S = TH3S (ForeignPtr RawTH3S) deriving (Eq, Ord, Show)
-instance FPtr TH3S where
-   type Raw TH3S = RawTH3S
-   get_fptr (TH3S fptr) = fptr
-   cast_fptr_to_obj = TH3S
-
-data RawTQObject
-newtype TQObject = TQObject (ForeignPtr RawTQObject) deriving (Eq, Ord, Show)
-instance FPtr TQObject where
-   type Raw TQObject = RawTQObject
-   get_fptr (TQObject fptr) = fptr
-   cast_fptr_to_obj = TQObject
-
-data RawTVirtualPad
-newtype TVirtualPad = TVirtualPad (ForeignPtr RawTVirtualPad) deriving (Eq, Ord, Show)
-instance FPtr TVirtualPad where
-   type Raw TVirtualPad = RawTVirtualPad
-   get_fptr (TVirtualPad fptr) = fptr
-   cast_fptr_to_obj = TVirtualPad
-
-data RawTPad
-newtype TPad = TPad (ForeignPtr RawTPad) deriving (Eq, Ord, Show)
-instance FPtr TPad where
-   type Raw TPad = RawTPad
-   get_fptr (TPad fptr) = fptr
-   cast_fptr_to_obj = TPad
-
-data RawTButton
-newtype TButton = TButton (ForeignPtr RawTButton) deriving (Eq, Ord, Show)
-instance FPtr TButton where
-   type Raw TButton = RawTButton
-   get_fptr (TButton fptr) = fptr
-   cast_fptr_to_obj = TButton
-
-data RawTGroupButton
-newtype TGroupButton = TGroupButton (ForeignPtr RawTGroupButton) deriving (Eq, Ord, Show)
-instance FPtr TGroupButton where
-   type Raw TGroupButton = RawTGroupButton
-   get_fptr (TGroupButton fptr) = fptr
-   cast_fptr_to_obj = TGroupButton
-
-data RawTCanvas
-newtype TCanvas = TCanvas (ForeignPtr RawTCanvas) deriving (Eq, Ord, Show)
-instance FPtr TCanvas where
-   type Raw TCanvas = RawTCanvas
-   get_fptr (TCanvas fptr) = fptr
-   cast_fptr_to_obj = TCanvas
-
-data RawTDialogCanvas
-newtype TDialogCanvas = TDialogCanvas (ForeignPtr RawTDialogCanvas) deriving (Eq, Ord, Show)
-instance FPtr TDialogCanvas where
-   type Raw TDialogCanvas = RawTDialogCanvas
-   get_fptr (TDialogCanvas fptr) = fptr
-   cast_fptr_to_obj = TDialogCanvas
-
-data RawTInspectCanvas
-newtype TInspectCanvas = TInspectCanvas (ForeignPtr RawTInspectCanvas) deriving (Eq, Ord, Show)
-instance FPtr TInspectCanvas where
-   type Raw TInspectCanvas = RawTInspectCanvas
-   get_fptr (TInspectCanvas fptr) = fptr
-   cast_fptr_to_obj = TInspectCanvas
-
-data RawTEvePad
-newtype TEvePad = TEvePad (ForeignPtr RawTEvePad) deriving (Eq, Ord, Show)
-instance FPtr TEvePad where
-   type Raw TEvePad = RawTEvePad
-   get_fptr (TEvePad fptr) = fptr
-   cast_fptr_to_obj = TEvePad
-
-data RawTSlider
-newtype TSlider = TSlider (ForeignPtr RawTSlider) deriving (Eq, Ord, Show)
-instance FPtr TSlider where
-   type Raw TSlider = RawTSlider
-   get_fptr (TSlider fptr) = fptr
-   cast_fptr_to_obj = TSlider
-
-data RawTApplication
-newtype TApplication = TApplication (ForeignPtr RawTApplication) deriving (Eq, Ord, Show)
-instance FPtr TApplication where
-   type Raw TApplication = RawTApplication
-   get_fptr (TApplication fptr) = fptr
-   cast_fptr_to_obj = TApplication
-
-data RawTRint
-newtype TRint = TRint (ForeignPtr RawTRint) deriving (Eq, Ord, Show)
-instance FPtr TRint where
-   type Raw TRint = RawTRint
-   get_fptr (TRint fptr) = fptr
-   cast_fptr_to_obj = TRint
