<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>The Binding Generator C->Haskell: The Haskell FFI Marshalling Library</TITLE> <LINK HREF="c2hs-5.html" REL=next> <LINK HREF="c2hs-3.html" REL=previous> <LINK HREF="c2hs.html#toc4" REL=contents> </HEAD> <BODY> <A HREF="c2hs-5.html">Next</A> <A HREF="c2hs-3.html">Previous</A> <A HREF="c2hs.html#toc4">Contents</A> <HR> <H2><A NAME="s4">4. The Haskell FFI Marshalling Library</A></H2> <P>The Haskell FFI Marshalling Library is a proposed standard library for foreign function interoperability. The interface of the <CODE>C2HS</CODE> marshalling library as of version 0.8.1 of the tool is a slight extension of the Haskell FFI Marshalling Library, which is documented in the following. <P>The library is partitioned into a language independent and a C specific component. All features of the former are available from the module <CODE>Foreign</CODE> and all features of the later from <CODE>CForeign</CODE>. Nevertheless, the following module hierarchy is part of the interface definition: <UL> <LI> <A HREF="lib/Foreign.hs">Foreign</A> <UL> <LI> <A HREF="lib/Int.hs">Int</A></LI> <LI> <A HREF="lib/Word.hs">Word</A></LI> <LI> <A HREF="lib/Ptr.hs">Ptr</A></LI> <LI> <A HREF="lib/ForeignPtr.hs">ForeignPtr</A></LI> <LI> <A HREF="lib/StablePtr.hs">StablePtr</A></LI> <LI> <A HREF="lib/Storable.hs">Storable</A></LI> <LI> <A HREF="lib/MarshalAlloc.hs">MarshalAlloc</A></LI> <LI> <A HREF="lib/MarshalArray.hs">MarshalArray</A></LI> <LI> <A HREF="lib/MarshalError.hs">MarshalError</A></LI> <LI> <A HREF="lib/MarshalUtils.hs">MarshalUtils</A></LI> </UL> </LI> <LI> <A HREF="lib/CForeign.hs">CForeign</A> <UL> <LI> <A HREF="lib/CTypes.hs">CTypes</A></LI> <LI> <A HREF="lib/CTypesISO.hs">CTypesISO</A></LI> <LI> <A HREF="lib/CError.hs">CError</A></LI> <LI> <A HREF="lib/CString.hs">CString</A></LI> </UL> </LI> </UL> It is recommended to access this functionality in C->Haskell binding modules by merely importing <CODE>C2HS</CODE>. <P> <P> <HR> <A HREF="c2hs-5.html">Next</A> <A HREF="c2hs-3.html">Previous</A> <A HREF="c2hs.html#toc4">Contents</A> </BODY> </HTML>