GreenCard, a foreign function pre-processor for Haskell.
Green Card is a foreign function interface preprocessor for Haskell, simplifying the task of interfacing Haskell programs to external libraries (which are normally exposed via C interfaces).
To interface to an external function using Green Card, you write a small procedure specification. The specification tells Green Card what (Haskell) type you want to give the function together with details of how the arguments (and results) to the Haskell function should be marshalled to and from the data representation used by the external function. Green Card will then generate gobs of low-level boilerplate code that takes care of all the details.
For an example of a simple GreenCard module, have a look at examples/world/World.gc
Along with the greencard
application binary, this package also supplies the greencard
library/package, consisting of the single module Foreign.GreenCard
containing the default GreenCard marshalling functions.