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.

This package supplies the executable, greencard, which needs GHC.
For the Foreign.GreenCard library, you need to install this first and then you can
install greencard-lib (greencard-lib requires the greencard binary already installed).