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

data RawTCrown

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

instance () => FPtr (TCrown) where
        type Raw TCrown = RawTCrown
        get_fptr :: TCrown -> Ptr (Raw TCrown)
get_fptr (TCrown Ptr RawTCrown
ptr) = Ptr (Raw TCrown)
Ptr RawTCrown
ptr
        cast_fptr_to_obj :: Ptr (Raw TCrown) -> TCrown
cast_fptr_to_obj = Ptr (Raw TCrown) -> TCrown
Ptr RawTCrown -> TCrown
TCrown