{-# LINE 1 "src/Data/Number/Flint/Fq/NMod/Types/FFI.hsc" #-}
module Data.Number.Flint.Fq.NMod.Types.FFI where
import Foreign.Ptr
import Foreign.ForeignPtr
import Foreign.C.Types
import Foreign.C.String
import Data.Number.Flint.Flint
import Data.Number.Flint.Fmpz
import Data.Number.Flint.NMod
import Data.Number.Flint.NMod.Types
data FqNMod = FqNMod {-# UNPACK #-} !(ForeignPtr CFqNMod)
type CFqNMod = CFlint FqNMod
data FqNModCtx = FqNModCtx {-# UNPACK #-} !(ForeignPtr CFqNModCtx)
data CFqNModCtx = CFqNModCtx (Ptr CFmpz) (Ptr CNMod) CInt CInt (Ptr CMpLimb) (Ptr CLong) (Ptr CLong) (Ptr CNModPoly) (Ptr CNModPoly) CString
data FqNModPoly = FqNModPoly {-# UNPACK #-} !(ForeignPtr CFqNModPoly)
type CFqNModPoly = CFlint FqNModPoly
data FqNModPolyFactor = FqNModPolyFactor {-# UNPACK #-} !(ForeignPtr CFqNModPolyFactor)
data CFqNModPolyFactor = CFqNModPolyFactor (Ptr CFqNModPoly) (Ptr CLong) CLong CLong
data FqNModMPoly = FqNModMPoly {-# UNPACK #-} !(ForeignPtr CFqNModMPoly)
type CFqNModMPoly = CFlint FqNModMPoly
data FqNModMat = FqNModMat {-# UNPACK #-} !(ForeignPtr CFqNModMat)
data CFqNModMat = CFqNModMat (Ptr CFqNMod) CLong CLong (Ptr (Ptr CFqNMod))