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

data RawLayeredCrossMinModule

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

instance () => FPtr (LayeredCrossMinModule) where
        type Raw LayeredCrossMinModule = RawLayeredCrossMinModule
        get_fptr :: LayeredCrossMinModule -> Ptr (Raw LayeredCrossMinModule)
get_fptr (LayeredCrossMinModule Ptr RawLayeredCrossMinModule
ptr) = Ptr (Raw LayeredCrossMinModule)
Ptr RawLayeredCrossMinModule
ptr
        cast_fptr_to_obj :: Ptr (Raw LayeredCrossMinModule) -> LayeredCrossMinModule
cast_fptr_to_obj = Ptr (Raw LayeredCrossMinModule) -> LayeredCrossMinModule
Ptr RawLayeredCrossMinModule -> LayeredCrossMinModule
LayeredCrossMinModule