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