{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances, EmptyDataDecls, OverlappingInstances, IncoherentInstances #-} module HROOT.Class.TArrayL64.Implementation where import HROOT.TypeCast import HROOT.Class.TArrayL64.RawType import HROOT.Class.TArrayL64.FFI import HROOT.Class.TArrayL64.Interface import HROOT.Class.TArrayL64.Cast import HROOT.Class.TArray.RawType import HROOT.Class.TArray.Cast import HROOT.Class.TArray.Interface import HROOT.Class.Deletable.RawType import HROOT.Class.Deletable.Cast import HROOT.Class.Deletable.Interface import Data.Word -- import Foreign.C -- import Foreign.Ptr import Foreign.ForeignPtr import System.IO.Unsafe instance ITArrayL64 TArrayL64 where instance ITArray TArrayL64 where instance IDeletable TArrayL64 where delete = xform0 c_tarrayl64_delete instance ITArrayL64 (Exist TArrayL64) where instance ITArray (Exist TArrayL64) where instance IDeletable (Exist TArrayL64) where delete (ETArrayL64 x) = delete x instance FPtr (Exist TArrayL64) where type Raw (Exist TArrayL64) = RawTArrayL64 get_fptr (ETArrayL64 obj) = castForeignPtr (get_fptr obj) cast_fptr_to_obj fptr = ETArrayL64 (cast_fptr_to_obj (fptr :: ForeignPtr RawTArrayL64) :: TArrayL64)