{-# LANGUAGE ForeignFunctionInterface, TypeFamilies,
  MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances,
  EmptyDataDecls, ExistentialQuantification, ScopedTypeVariables #-}
module HROOT.Core.TObject.RawType where
import Foreign.Ptr
import FFICXX.Runtime.Cast

data RawTObject

newtype TObject = TObject (Ptr RawTObject)
                    deriving (TObject -> TObject -> Bool
(TObject -> TObject -> Bool)
-> (TObject -> TObject -> Bool) -> Eq TObject
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TObject -> TObject -> Bool
== :: TObject -> TObject -> Bool
$c/= :: TObject -> TObject -> Bool
/= :: TObject -> TObject -> Bool
Eq, Eq TObject
Eq TObject
-> (TObject -> TObject -> Ordering)
-> (TObject -> TObject -> Bool)
-> (TObject -> TObject -> Bool)
-> (TObject -> TObject -> Bool)
-> (TObject -> TObject -> Bool)
-> (TObject -> TObject -> TObject)
-> (TObject -> TObject -> TObject)
-> Ord TObject
TObject -> TObject -> Bool
TObject -> TObject -> Ordering
TObject -> TObject -> TObject
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 :: TObject -> TObject -> Ordering
compare :: TObject -> TObject -> Ordering
$c< :: TObject -> TObject -> Bool
< :: TObject -> TObject -> Bool
$c<= :: TObject -> TObject -> Bool
<= :: TObject -> TObject -> Bool
$c> :: TObject -> TObject -> Bool
> :: TObject -> TObject -> Bool
$c>= :: TObject -> TObject -> Bool
>= :: TObject -> TObject -> Bool
$cmax :: TObject -> TObject -> TObject
max :: TObject -> TObject -> TObject
$cmin :: TObject -> TObject -> TObject
min :: TObject -> TObject -> TObject
Ord, Int -> TObject -> ShowS
[TObject] -> ShowS
TObject -> String
(Int -> TObject -> ShowS)
-> (TObject -> String) -> ([TObject] -> ShowS) -> Show TObject
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TObject -> ShowS
showsPrec :: Int -> TObject -> ShowS
$cshow :: TObject -> String
show :: TObject -> String
$cshowList :: [TObject] -> ShowS
showList :: [TObject] -> ShowS
Show)

instance () => FPtr (TObject) where
        type Raw TObject = RawTObject
        get_fptr :: TObject -> Ptr (Raw TObject)
get_fptr (TObject Ptr RawTObject
ptr) = Ptr (Raw TObject)
Ptr RawTObject
ptr
        cast_fptr_to_obj :: Ptr (Raw TObject) -> TObject
cast_fptr_to_obj = Ptr (Raw TObject) -> TObject
Ptr RawTObject -> TObject
TObject