kirancodes.me
To Proof Maintenance & Beyond!

Automatic C Bindings Generation for Haskell

Travis Cardwell, Sam Derbyshire, Edsko de Vries, Dominik Schrempf

Abstract

Interfacing Haskell with C libraries is a common necessity, but the manual creation of bindings is both error-prone and laborious. We present hs-bindgen, a new tool that provides fully automatic generation of Haskell FFI bindings directly from C header files.

We introduce a novel method for describing bindings through binding specifications, providing a compositional method for using bindings for one library in bindings for another. Furthermore, we define a domain-specific language in Haskell to represent C expressions found in C macros, along with a corresponding type inference algorithm, to allow us to generate bindings for functions defined as C macros.

Related papers