{-# 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