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

data RawTChain

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

instance () => FPtr (TChain) where
        type Raw TChain = RawTChain
        get_fptr :: TChain -> Ptr (Raw TChain)
get_fptr (TChain Ptr RawTChain
ptr) = Ptr (Raw TChain)
Ptr RawTChain
ptr
        cast_fptr_to_obj :: Ptr (Raw TChain) -> TChain
cast_fptr_to_obj = Ptr (Raw TChain) -> TChain
Ptr RawTChain -> TChain
TChain