-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Runtime for fficxx-generated library -- -- Runtime for fficxx-generated library. fficxx is an automatic haskell -- Foreign Function Interface (FFI) generator to C++. @package fficxx-runtime @version 0.6 module FFICXX.Runtime.Cast class IsRawType a class Castable a b cast :: Castable a b => a -> (b -> IO r) -> IO r uncast :: Castable a b => b -> (a -> IO r) -> IO r class FPtr a where { type family Raw a :: *; } get_fptr :: FPtr a => a -> Ptr (Raw a) cast_fptr_to_obj :: FPtr a => Ptr (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 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 FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CBool instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CChar instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CClock instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CDouble instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CFile instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CFloat instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CFpos instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CInt instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CIntMax instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CIntPtr instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CJmpBuf instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CLLong instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CLong instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CPtrdiff instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CSChar instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CSUSeconds instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CShort instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CSigAtomic instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CSize instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CTime instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CUChar instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CUInt instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CUIntMax instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CUIntPtr instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CULLong instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CULong instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CUSeconds instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CUShort instance FFICXX.Runtime.Cast.IsCType Foreign.C.Types.CWchar instance FFICXX.Runtime.Cast.IsCType Foreign.C.String.CString instance FFICXX.Runtime.Cast.IsCType GHC.Int.Int8 instance FFICXX.Runtime.Cast.IsCType GHC.Int.Int16 instance FFICXX.Runtime.Cast.IsCType GHC.Int.Int32 instance FFICXX.Runtime.Cast.IsCType GHC.Int.Int64 instance FFICXX.Runtime.Cast.IsCType GHC.Word.Word8 instance FFICXX.Runtime.Cast.IsCType GHC.Word.Word16 instance FFICXX.Runtime.Cast.IsCType GHC.Word.Word32 instance FFICXX.Runtime.Cast.IsCType GHC.Word.Word64 instance FFICXX.Runtime.Cast.Castable () () instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CBool Foreign.C.Types.CBool instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CChar Foreign.C.Types.CChar instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CClock Foreign.C.Types.CClock instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CDouble Foreign.C.Types.CDouble instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CFile Foreign.C.Types.CFile instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CFloat Foreign.C.Types.CFloat instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CFpos Foreign.C.Types.CFpos instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CInt Foreign.C.Types.CInt instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CIntMax Foreign.C.Types.CIntMax instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CIntPtr Foreign.C.Types.CIntPtr instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CJmpBuf Foreign.C.Types.CJmpBuf instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CLLong Foreign.C.Types.CLLong instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CLong Foreign.C.Types.CLong instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CPtrdiff Foreign.C.Types.CPtrdiff instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CSChar Foreign.C.Types.CSChar instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CSUSeconds Foreign.C.Types.CSUSeconds instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CShort Foreign.C.Types.CShort instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CSigAtomic Foreign.C.Types.CSigAtomic instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CSize Foreign.C.Types.CSize instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CTime Foreign.C.Types.CTime instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CUChar Foreign.C.Types.CUChar instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CUInt Foreign.C.Types.CUInt instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CUIntMax Foreign.C.Types.CUIntMax instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CUIntPtr Foreign.C.Types.CUIntPtr instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CULLong Foreign.C.Types.CULLong instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CULong Foreign.C.Types.CULong instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CUSeconds Foreign.C.Types.CUSeconds instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CUShort Foreign.C.Types.CUShort instance FFICXX.Runtime.Cast.Castable Foreign.C.Types.CWchar Foreign.C.Types.CWchar instance FFICXX.Runtime.Cast.Castable GHC.Int.Int8 GHC.Int.Int8 instance FFICXX.Runtime.Cast.Castable GHC.Int.Int16 GHC.Int.Int16 instance FFICXX.Runtime.Cast.Castable GHC.Int.Int32 GHC.Int.Int32 instance FFICXX.Runtime.Cast.Castable GHC.Int.Int64 GHC.Int.Int64 instance FFICXX.Runtime.Cast.Castable GHC.Word.Word8 GHC.Word.Word8 instance FFICXX.Runtime.Cast.Castable GHC.Word.Word16 GHC.Word.Word16 instance FFICXX.Runtime.Cast.Castable GHC.Word.Word32 GHC.Word.Word32 instance FFICXX.Runtime.Cast.Castable GHC.Word.Word64 GHC.Word.Word64 instance FFICXX.Runtime.Cast.Castable (GHC.Ptr.Ptr Foreign.C.Types.CInt) (GHC.Ptr.Ptr Foreign.C.Types.CInt) instance FFICXX.Runtime.Cast.Castable (GHC.Ptr.Ptr Foreign.C.Types.CChar) (GHC.Ptr.Ptr Foreign.C.Types.CChar) instance FFICXX.Runtime.Cast.Castable (GHC.Ptr.Ptr Foreign.C.Types.CUInt) (GHC.Ptr.Ptr Foreign.C.Types.CUInt) instance FFICXX.Runtime.Cast.Castable (GHC.Ptr.Ptr Foreign.C.Types.CULong) (GHC.Ptr.Ptr Foreign.C.Types.CULong) instance FFICXX.Runtime.Cast.Castable (GHC.Ptr.Ptr Foreign.C.Types.CLong) (GHC.Ptr.Ptr Foreign.C.Types.CLong) instance FFICXX.Runtime.Cast.Castable (GHC.Ptr.Ptr Foreign.C.Types.CDouble) (GHC.Ptr.Ptr Foreign.C.Types.CDouble) instance FFICXX.Runtime.Cast.Castable (GHC.Ptr.Ptr Foreign.C.String.CString) (GHC.Ptr.Ptr Foreign.C.String.CString) instance FFICXX.Runtime.Cast.Castable (GHC.Ptr.Ptr ()) (GHC.Ptr.Ptr ()) instance FFICXX.Runtime.Cast.Castable GHC.Types.Int Foreign.C.Types.CInt instance FFICXX.Runtime.Cast.Castable GHC.Int.Int16 Foreign.C.Types.CShort instance FFICXX.Runtime.Cast.Castable GHC.Int.Int8 Foreign.C.Types.CChar instance FFICXX.Runtime.Cast.Castable GHC.Types.Word Foreign.C.Types.CUInt instance FFICXX.Runtime.Cast.Castable GHC.Word.Word8 Foreign.C.Types.CChar instance FFICXX.Runtime.Cast.Castable GHC.Types.Double Foreign.C.Types.CDouble instance FFICXX.Runtime.Cast.Castable [GHC.Types.Double] (GHC.Ptr.Ptr Foreign.C.Types.CDouble) instance FFICXX.Runtime.Cast.Castable [GHC.Types.Int] (GHC.Ptr.Ptr Foreign.C.Types.CInt) instance FFICXX.Runtime.Cast.Castable Data.ByteString.Internal.ByteString Foreign.C.String.CString instance FFICXX.Runtime.Cast.Castable [Data.ByteString.Internal.ByteString] (GHC.Ptr.Ptr Foreign.C.String.CString) module FFICXX.Runtime.CodeGen.Cxx newtype HeaderName HdrName :: String -> HeaderName [unHdrName] :: HeaderName -> String newtype Namespace NS :: String -> Namespace [unNamespace] :: Namespace -> String data PragmaParam Once :: PragmaParam -- | parts for interpolation newtype NamePart (f :: * -> *) NamePart :: String -> NamePart (f :: * -> *) newtype CName (f :: * -> *) CName :: [NamePart f] -> CName (f :: * -> *) sname :: String -> CName Identity renderCName :: CName Identity -> String -- | Types data CType (f :: * -> *) CTVoid :: CType (f :: * -> *) CTSimple :: CName f -> CType (f :: * -> *) CTStar :: CType f -> CType (f :: * -> *) CTAuto :: CType (f :: * -> *) CTTApp :: CName f -> [CType f] -> CType (f :: * -> *) CTConst :: CType f -> CType (f :: * -> *) CTScoped :: CType f -> CType f -> CType (f :: * -> *) CTVerbatim :: String -> CType (f :: * -> *) -- | Operators data COp CArrow :: COp CAssign :: COp renderCOp :: COp -> String data CExp (f :: * -> *) -- | variable CVar :: CName f -> CExp (f :: * -> *) -- | C function app: f(a1,a2,..) CApp :: CExp f -> [CExp f] -> CExp (f :: * -> *) -- | template app : fT1,T2,..(a1,a2,..) CTApp :: CName f -> [CType f] -> [CExp f] -> CExp (f :: * -> *) -- | binary operator: x op y CBinOp :: COp -> CExp f -> CExp f -> CExp (f :: * -> *) -- | (type)exp CCast :: CType f -> CExp f -> CExp (f :: * -> *) -- | &(exp) CAddr :: CExp f -> CExp (f :: * -> *) -- |