GSoC/GCI Archive
Google Summer of Code 2009

Web Page:

Mailing List: is the community focus for supporting and promoting the open-source programming language Haskell. The language user community has grown significantly over the last few years, as Haskell becomes better-known and more widely adopted.


  • Extend EclipseFP functionality for Haskell EclipseFP is a plugin for the Java IDE Eclipse that adds support for Haskell. However, it is not yet perfect, and contains many bugs and UI quirks. I will bring this plugin to a more usable state, starting with some bugfixes and small improvements. The next step is to make Eclipse communicate with the GHC API through the scion library, so that more advanced features such as type inference become possible. I will also add support for the de-facto standard package manager Cabal.
  • Haddock improvements A project to improve Haddock, the Haskell documentation tool, both substantively in the short term and to be better factored in the long term. I will resolve many Haddock Trac tickets; specific projects are to make cross-package documentation work, and to refactor the comment-parsing out of GHC and into the Haddock code-base.
  • haskell-src-exts -> haskell-src This project aims to improve on my haskell-src-exts library for working with Haskell source code. The goal of the project is to have haskell-src-exts supercede the haskell-src library. The main thing involved is to add a mechanism that allows the user to conditionally choose what extensions the parser should be aware of. Further, I would extend haskell-src(-exts) with functionality to handle comments and exact layout, to allow for things like automatic code generation and refactoring.
  • Improving space profiling experience At the present moment, heap profiling Haskell programs means analysing logs off-line, using conversion tools to visualise data. However, instead of generating graphs with hp2ps, it should be possible to present the data in a graphical application in real time, which is useful while developing interactive applications. This project aims at creating an interactive profiler as well as a Haskell reimplementation of hp2ps to resolve some long-standing issues and improve its maintainability.
  • Optimising Darcs for medium to large repositories Darcs is known to have performance issues when repositories extend beyond certain size. There are several "directions" in which repositories grow -- out of these, size of the working tree and length of history my primary focus. Common commands involving the working tree should be comfortable to use and should not introduce delays in workflow. Moreover, big repositories should be stored efficiently and it should be possible to efficiently retrieve both full repositories and new patches remotely.