School of Computing

HEAT: The Haskell Educational Advancement Tool

An Interactive Development Environment for Learning & Teaching Haskell

Using a separate editor and interpreter provides many distracting obstacles for inexperienced students learning a programming language. Professional interactive development environments, however, confuse and distract with their excessive features. Hence Heat was designed for novice students learning the functional programming language Haskell. Based on teaching experience, Heat provides a small number of supporting features, especially for testing, and is easy to use. Heat is portable, small and works on top of the Haskell interpreter GHCi. Heat has been used in teaching functional programming at the University of Kent since 2006.

A screenshot of Heat

Requirements met by Heat

  • integrates editor and interpreter console within a single user interface
  • provides a graphical user interface similar to professional IDEs
  • simple and fool-proof: only features that support students beginning to learn Haskell
  • reliable
  • runs on all major platforms because it is implemented in Java
  • easy to install
  • small source code and easy to maintain
Heat logo


  • Editor for a single module with syntax-highlighting and matching brackets
  • Shows the status of compilation: non-compiled; compiled with or without error
  • Interpreter console that highlights the prompt and errors
  • If compilation yields an error, the source line is highlighted and additional error explanations are provided
  • Shows a program overview in a tree structure, giving definitions of types and types of functions ...
  • Automatic checking of all properties of a program (just Boolean or QuickCheck properties); results shown in summary





  • Version 5.05: Bug fixes and improvements related to the console and the editor.
  • Version 5.04: Bug fixes, mainly concerned with handling filepaths of different OSs.
  • Version 5.0: Major changes. Now works with GHCi instead of Hugs. Support for QuickCheck property testing. Simplified use of Haskell files. Many bugs fixed. Everything in a single jar file.
  • Version 3.1: Fixed bug that options menu entry often didn't work. Options now also include entry for command line options for Hugs, e.g. -98. Made Heat user interface slightly more Mac friendly.
  • Version 3.0: Debugging and refactoring by Olaf Chitil.
  • Version 2.9: Ivan Ivanovski, a summer intern, implemented a proper console and improved testing.
  • Version 2.0: Developed by Jerome J. S. Gedge, Sergei Krot, Stefanos Katsantonis and Danya Nusseir as their final year project; added several features including the summary and automatic testing.
  • Version 1.1: Slightly improved by Olaf Chitil; used in teaching since 2006.
  • Version 1.0: Created by Dean Ashton, Chris Olive, John Travers and Louis Whest as their final year project in 2004/5 at the University of Kent.
Old versions for download:

If you have questions about Heat, please contact Olaf Chitil.

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 29/01/2019