Language Concepts
C

HASKELL, or Yet Another Interfacing Tool
Manuel M. T. Chakravarty1 
| (1) |
School of Computer Science and Engineering, University of New South Wales, Sydney, |
Abstract
This paper discusses a new method for typed functional languages to access libraries written in a lower-level language. More
specifically, it introduces an interfacing tool that eases Haskell access to C libraries. The tool obtains information about
the C data type definitions and function signatures by analysing the C header files of the library. It uses this information
to compute the missing details in the template of a Haskell module that implements a Haskell binding to the C library. Hooks
embedded in the binding file signal where, which, and how C objects are accessed from Haskell. The Haskell code in the binding
file determines Haskell type signatures and marshaling details. The approach is lightweight and does not require an extra
interface description language.
This work was conducted, in large part, while working at the Institute of Information Sciences and Electronics, University
of Tsukuba, Japan.