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

data RawDPoint

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

instance () => FPtr (DPoint) where
        type Raw DPoint = RawDPoint
        get_fptr :: DPoint -> Ptr (Raw DPoint)
get_fptr (DPoint Ptr RawDPoint
ptr) = Ptr (Raw DPoint)
Ptr RawDPoint
ptr
        cast_fptr_to_obj :: Ptr (Raw DPoint) -> DPoint
cast_fptr_to_obj = Ptr (Raw DPoint) -> DPoint
Ptr RawDPoint -> DPoint
DPoint