{-# LINE 1 "lib/CPython/Types/Type.chs" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
module CPython.Types.Type
( Type
, typeType
, isSubtype
) where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Marshal.Utils as C2HSImp
import qualified Foreign.Ptr as C2HSImp
import qualified System.IO.Unsafe as C2HSImp
import CPython.Internal
instance Concrete Type where
concreteType :: Type -> Type
concreteType _ = Type
typeType
typeType :: (Type)
typeType :: Type
typeType =
C2HSImp.unsafePerformIO $
typeType'_ >>= \res ->
peekStaticObject res >>= \res' ->
return (res')
{-# LINE 32 "lib/CPython/Types/Type.chs" #-}
isSubtype :: (Type) -> (Type) -> IO ((Bool))
isSubtype a1 a2 =
withObject a1 $ \a1' ->
withObject a2 $ \a2' ->
isSubtype'_ a1' a2' >>= \res ->
let {res' = C2HSImp.toBool res} in
return (res')
{-# LINE 39 "lib/CPython/Types/Type.chs" #-}
foreign import ccall unsafe "CPython/Types/Type.chs.h hscpython_PyType_Type"
typeType'_ :: (IO (C2HSImp.Ptr ()))
foreign import ccall safe "CPython/Types/Type.chs.h PyType_IsSubtype"
isSubtype'_ :: ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (IO C2HSImp.CInt)))