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

data RawOptimalHierarchyLayout

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

instance () => FPtr (OptimalHierarchyLayout) where
        type Raw OptimalHierarchyLayout = RawOptimalHierarchyLayout
        get_fptr :: OptimalHierarchyLayout -> Ptr (Raw OptimalHierarchyLayout)
get_fptr (OptimalHierarchyLayout Ptr RawOptimalHierarchyLayout
ptr) = Ptr (Raw OptimalHierarchyLayout)
Ptr RawOptimalHierarchyLayout
ptr
        cast_fptr_to_obj :: Ptr (Raw OptimalHierarchyLayout) -> OptimalHierarchyLayout
cast_fptr_to_obj = Ptr (Raw OptimalHierarchyLayout) -> OptimalHierarchyLayout
Ptr RawOptimalHierarchyLayout -> OptimalHierarchyLayout
OptimalHierarchyLayout