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