{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-} module HROOT.Core.TClass.RawType where import Foreign.Ptr import FFICXX.Runtime.Cast data RawTClass newtype TClass = TClass (Ptr RawTClass) deriving (TClass -> TClass -> Bool (TClass -> TClass -> Bool) -> (TClass -> TClass -> Bool) -> Eq TClass forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: TClass -> TClass -> Bool == :: TClass -> TClass -> Bool $c/= :: TClass -> TClass -> Bool /= :: TClass -> TClass -> Bool Eq, Eq TClass Eq TClass -> (TClass -> TClass -> Ordering) -> (TClass -> TClass -> Bool) -> (TClass -> TClass -> Bool) -> (TClass -> TClass -> Bool) -> (TClass -> TClass -> Bool) -> (TClass -> TClass -> TClass) -> (TClass -> TClass -> TClass) -> Ord TClass TClass -> TClass -> Bool TClass -> TClass -> Ordering TClass -> TClass -> TClass forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a $ccompare :: TClass -> TClass -> Ordering compare :: TClass -> TClass -> Ordering $c< :: TClass -> TClass -> Bool < :: TClass -> TClass -> Bool $c<= :: TClass -> TClass -> Bool <= :: TClass -> TClass -> Bool $c> :: TClass -> TClass -> Bool > :: TClass -> TClass -> Bool $c>= :: TClass -> TClass -> Bool >= :: TClass -> TClass -> Bool $cmax :: TClass -> TClass -> TClass max :: TClass -> TClass -> TClass $cmin :: TClass -> TClass -> TClass min :: TClass -> TClass -> TClass Ord, Int -> TClass -> ShowS [TClass] -> ShowS TClass -> String (Int -> TClass -> ShowS) -> (TClass -> String) -> ([TClass] -> ShowS) -> Show TClass forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> TClass -> ShowS showsPrec :: Int -> TClass -> ShowS $cshow :: TClass -> String show :: TClass -> String $cshowList :: [TClass] -> ShowS showList :: [TClass] -> ShowS Show) instance () => FPtr (TClass) where type Raw TClass = RawTClass get_fptr :: TClass -> Ptr (Raw TClass) get_fptr (TClass Ptr RawTClass ptr) = Ptr (Raw TClass) Ptr RawTClass ptr cast_fptr_to_obj :: Ptr (Raw TClass) -> TClass cast_fptr_to_obj = Ptr (Raw TClass) -> TClass Ptr RawTClass -> TClass TClass