-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Runtime for fficxx-generated library -- -- Runtime for fficxx-generated library @package fficxx-runtime @version 0.2 module FFICXX.Runtime.Cast class IsRawType a class Castable a b cast :: Castable a b => a -> b uncast :: Castable a b => b -> a class FPtr a where type family Raw a :: * get_fptr :: FPtr a => a -> ForeignPtr (Raw a) cast_fptr_to_obj :: FPtr a => ForeignPtr (Raw a) -> a class FunPtrWrappable a where type family FunPtrHsType a :: * type family FunPtrType a :: * data family FunPtrWrapped a :: * fptrWrap :: FunPtrWrappable a => FunPtrWrapped a -> IO (FunPtr (FunPtrType a)) wrap :: FunPtrWrappable a => FunPtrHsType a -> FunPtrWrapped a class Existable a where data family Exist a :: * data BottomType class GADTTypeable a where data family GADTType a :: * -> * data family EGADTType a :: * class IsCType a xformnull :: Castable a ca => (IO ca) -> IO a xform0 :: (Castable a ca, Castable y cy) => (ca -> IO cy) -> a -> IO y xform1 :: (Castable a ca, Castable x1 cx1, Castable y cy) => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y xform2 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) => (ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2 -> IO y xform3 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> IO cy) -> a -> x1 -> x2 -> x3 -> IO y xform4 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> IO y xform5 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y xform6 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> IO y xform7 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> IO y xform8 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> IO y xform9 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> IO y xform10 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9, Castable x10 cx10, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> cx10 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> x10 -> IO y xform11 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9, Castable x10 cx10, Castable x11 cx11, Castable y cy) => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> cx10 -> cx11 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> x10 -> x11 -> IO y instance (Castable a a', Castable b b') => Castable (a -> b) (a' -> b') instance Castable [String] (Ptr CString) instance Castable String CString instance Castable [Int] (Ptr CInt) instance Castable [Double] (Ptr CDouble) instance Castable Double CDouble instance Castable Word8 CChar instance Castable Word CUInt instance Castable Int CInt instance Castable (Ptr CString) (Ptr CString) instance Castable (Ptr CDouble) (Ptr CDouble) instance Castable (Ptr CLong) (Ptr CLong) instance Castable (Ptr CULong) (Ptr CULong) instance Castable (Ptr CUInt) (Ptr CUInt) instance Castable (Ptr CChar) (Ptr CChar) instance Castable (Ptr CInt) (Ptr CInt) instance Castable CULong CULong instance Castable CLong CLong instance Castable CInt CInt instance Castable CUInt CUInt instance Castable CDouble CDouble instance Castable () () instance IsCType CLong instance IsCType CULong instance IsCType CString instance IsCType CUInt instance IsCType CInt instance IsCType CChar