The interfacing of object-oriented languages with functional languages, in general, and with Haskell, in particular, has received
a considerable amount of attention. Previous work, including Lambada, a Haskell to Java bridge, showed how an object-oriented
class hierarchy can be modeled using Haskell type classes, such that Java libraries can be used conveniently from Haskell.
The present paper extends this previous work in two major directions. Firstly, we describe a new implementation of object-oriented
style method calls and overloading in Haskell, using multi-parameter type classes and functional dependencies. This enables
calling of a foreign object’s methods in a syntactically convenient, type-safe manner. Secondly, we sketch an approach to
automating the generation of library bindings using compile-time meta-programming for object-oriented frameworks featuring
reflection. We have evaluated the practicality of our approach by implementing a Haskell binding to the Objective-C language
on the Mac OS X platform.