-- GENERATED by C->Haskell Compiler, version 0.16.4 Crystal Seed, 24 Jan 2009 (Haskell) -- Edit the ORIGNAL .chs file instead! {-# LINE 1 "lib/CPython/Types/Type.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-} -- Copyright (C) 2009 John Millikin <jmillikin@gmail.com> -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. module CPython.Types.Type ( Type , typeType , isSubtype ) where import CPython.Internal instance Concrete Type where concreteType _ = typeType typeType :: Type typeType = unsafePerformIO $ let {res = typeType'_} in peekStaticObject res >>= \res' -> return (res') {-# LINE 32 "lib/CPython/Types/Type.chs" #-} -- | Returns 'True' if the first parameter is a subtype of the second -- parameter. isSubtype :: Type -> Type -> IO (Bool) isSubtype a1 a2 = withObject a1 $ \a1' -> withObject a2 $ \a2' -> isSubtype'_ a1' a2' >>= \res -> let {res' = 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'_ :: (Ptr ()) foreign import ccall safe "CPython/Types/Type.chs.h PyType_IsSubtype" isSubtype'_ :: ((Ptr ()) -> ((Ptr ()) -> (IO CInt)))