{-# 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 RawTPolyLineShape newtype TPolyLineShape = TPolyLineShape (ForeignPtr RawTPolyLineShape) deriving (Eq, Ord, Show) instance FPtr TPolyLineShape where type Raw TPolyLineShape = RawTPolyLineShape get_fptr (TPolyLineShape fptr) = fptr cast_fptr_to_obj = TPolyLineShape 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