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

data RawGraph

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

instance () => FPtr (Graph) where
        type Raw Graph = RawGraph
        get_fptr :: Graph -> Ptr (Raw Graph)
get_fptr (Graph Ptr RawGraph
ptr) = Ptr (Raw Graph)
Ptr RawGraph
ptr
        cast_fptr_to_obj :: Ptr (Raw Graph) -> Graph
cast_fptr_to_obj = Ptr (Raw Graph) -> Graph
Ptr RawGraph -> Graph
Graph