{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Graf.TAttImage.Implementation where import FFICXX.Runtime.Cast import HROOT.Graf.TAttImage.RawType import HROOT.Graf.TAttImage.FFI import HROOT.Graf.TAttImage.Interface import HROOT.Graf.TAttImage.Cast import HROOT.Core.Deletable.RawType import HROOT.Core.Deletable.Cast import HROOT.Core.Deletable.Interface import Data.Word import Foreign.C import Foreign.Ptr import Foreign.ForeignPtr import System.IO.Unsafe instance ITAttImage TAttImage where instance IDeletable TAttImage where delete = xform0 c_tattimage_delete instance ITAttImage (Exist TAttImage) where instance IDeletable (Exist TAttImage) where delete (ETAttImage x) = delete x instance FPtr (Exist TAttImage) where type Raw (Exist TAttImage) = RawTAttImage get_fptr (ETAttImage obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETAttImage (cast_fptr_to_obj (fptr :: ForeignPtr RawTAttImage) :: TAttImage)