Ultra: Interactive Transformation of Functional Programs

Welcome to the Ultra home page. Ultra is an interactive system for transforming Haskell programs, and is itself implemented in this functional programming language.


Until version 2.2 the system is written in the programming language Gofer and uses TkGofer to implement its user interface.

To install Ultra 2.2 for Windows 95/NT/XP/Vista/7 please download the package, unpack it and start ultra.bat. Skip the following detailed instructions in this case.

To install Ultra 2.2 for Linux and other operating systems, perform the following steps:

  • First, install TkGofer 2.2. You can find information about the installation procedure on the TkGofer web page or in the readme file. The Windows version of TkGofer 2.2 is available here.
  • Second, download the Ultra 2.2 sources, unpack and place them into some directory accesible by the TkGofer system.
  • Then you can start TkGofer 2.2, load the ultra.p project file, and evaluate the function main.

You can also look at the following documentation regarding Ultra:


Version 3.0 extends Ultra to Haskell. You can find details about this extension and its installation here. Ultra 3.0 is available in two ways:

  • as a binary including several libraries; it runs on Linux/x86 with Tcl/Tk/Tix installed,
  • as source code; it is possible but a bit intricate to compile it manually.

ULTRA 4.0a

The most recent version of ULTRA implements a frontend to the Glasgow Haskell Compiler (GHC) by using the GHC-API for parsing and type-checking Haskell code. This facilitates compatibility with current Haskell standards and the support of various language extensions.
Furthermore, ULTRA 4.0a offers a completely overhauled user interface (screenshots: Windows, Linux), implemented in the GUI library wxHaskell that is built on top of wxWidgets.

ULTRA 4.0a is available:

  • as binary code, executable under Windows with an installed GHC version >= 7.4.1 (currently included in the Haskell platform). A stand-alone executable for Linux is work in progress.
  • as source code, which can be compiled under both Windows and Linux, provided the wxHaskell library is installed.

The following persons were involved in the development of Ultra: Helmuth Partsch, Wolfram Schulte, Ton Vullinghs, Mark Dettinger, Joachim Schmid, Thorsten Quell, Tobias Häberlein, Walter Guttmann, Michael Stahl and Tobias Weck. We welcome all your comments, feedback, and suggestions, which you can send to Tobias Weck.


Tobias Weck