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

data RawTArrow

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

instance () => FPtr (TArrow) where
        type Raw TArrow = RawTArrow
        get_fptr :: TArrow -> Ptr (Raw TArrow)
get_fptr (TArrow Ptr RawTArrow
ptr) = Ptr (Raw TArrow)
Ptr RawTArrow
ptr
        cast_fptr_to_obj :: Ptr (Raw TArrow) -> TArrow
cast_fptr_to_obj = Ptr (Raw TArrow) -> TArrow
Ptr RawTArrow -> TArrow
TArrow