Backend for text editors to provide better Haskell editing support.

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

LGPL-2.1 licensed by Christian Wolf

hbb: Extraordinary Haskell programming

This project aims to create a tool which should be easily embeddable in text editors to assist them to provide extraordinary editing features for the Haskell programming language. To archieve this, the tool is based on the library of the Glasgow Haskell Compiler (GHC).

The name hbb is short for haskell busy bee and should remind one of the programmers using it. It consists of the library hbb and a command line tool which has the name libhbb-cli. libhbb-cli has been chosen because in another repository the features of (the library) hbb and ghc-mod are merged into an executable hbb which provides (many more) features than libhbb-cli.

One outstanding feature of hbb is is the possibility to inline a function binding.



  • Adding support for inlining value bindings with guards or where expressions. If such a value bindings is encountered, a trivial case expression is added case () of () | ...".
  • Fixing a bug that prevented functions with one match and a single parameter to be inlined correctly. In this case a prefix like \a case a of has been produced, which is invalid as -> is missing.


  • Fixing a bug in the modes inline and smart-inline which caused them to produce a wrong representation for small functions that have no leading case expression. The parameters of these function were always aggregated to tuples.
  • Adding and to cabal package.


  • The modes locate, inline and smart-inline are now able to inline/locate functions that are defined in infix notation.


  • Added the integration mode apply-ttree.
  • The modes inline and smart-inline are now able converting a where expression to a let expression if this makes it possible to omit a leading case expression. The result is a much shorter lambda function.
Used by 2 packages:
comments powered byDisqus