{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Core.TArrayF.Implementation where import FFICXX.Runtime.Cast import HROOT.Core.TArrayF.RawType import HROOT.Core.TArrayF.FFI import HROOT.Core.TArrayF.Interface import HROOT.Core.TArrayF.Cast import HROOT.Core.TArray.RawType import HROOT.Core.TArray.Cast import HROOT.Core.TArray.Interface 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 ITArrayF TArrayF where instance ITArray TArrayF where instance IDeletable TArrayF where delete = xform0 c_tarrayf_delete instance ITArrayF (Exist TArrayF) where instance ITArray (Exist TArrayF) where instance IDeletable (Exist TArrayF) where delete (ETArrayF x) = delete x instance FPtr (Exist TArrayF) where type Raw (Exist TArrayF) = RawTArrayF get_fptr (ETArrayF obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETArrayF (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrayF) :: TArrayF)