From HaskellWiki
Jump to navigation Jump to search

This page is obsolete


HQK is an effort to provide Haskell bindings to large parts of the Qt and KDE libraries. The project may also be useful for bindings to other C++ libraries.


Thomas Mönicke has developed a generator which produces binding code mostly automatically. Alas, this generator is not really finished. At the moment, it is even difficult to compile it. If you want to experiment with it nevertheless, you can download it. Here are some building tips from Sönke Hahn:

  • Several compilation errors can be removed by correcting case of identifiers. Some functions are used with camel case identifiers while their declarations use only lower case letters (or the other way round).
  • You should remove the contents of the directory generator/debug completely. This directory contains files generated by the Meta Object Compiler (MOC) and architecture-independent object files. Both are obviously rebuilt by the Ant build script.

I, that is Wolfgang Jeltsch, would be happy to hear from you whether you think that it is sensible to transform the current version into something that can be released.

In addition, I have developed a small Haskell module for accessing object-oriented libraries in a convenient way. This module also supports parts of Qt’s signal-slot mechanism. In contrast to the original C++-based solution, type correctness of signal-slot connections is checked at compile time with this library.


If the binding generator will ever be finished, we want to develop a HQK-based UI backend for the Functional Reactive Programming library Grapefruit, thereby making Grapefruit multi-platform.