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.