Universität Ulm, Fakultät für Informatik, Abteilung Programmiermethodik

The TkGofer Home Page

Welcome to the TkGofer Home Page. TkGofer is a library for writing graphical user interfaces in the lazy functional language Gofer. The version currently being distributed is Version 2.1. Read more about the current release in the readme file or, in the release notes. A long time ago, TkGofer was mainly supported by Koen Claessen and Ton Vullinghs. We welcome all your comments, feedback and suggestions.


TkGofer runs on any system that supports Tcl/Tk and Gofer. TkGofer is developed on a Sun Sparc Ultra, running Solaris 2.5. We successfully tested the system for Linux, HP-UX, SGI and SunOS 4.1.3 platforms.

For the current version of the prelude we advice you to use Tcl version 7.6 and Tk version 4.2 or higher.

The current distribution contains the Gofer C-sources, preludes, a lot of examples, and documentation. A precompiled version of TkGofer is also available for Windows 95 and Windows NT. You can find more details in the readme.win file. There is also a special version of TkGofer, which supports Ultra.


There exist a number of papers on TkGofer. The older ones might be a little bit outdated, but at least they give an impression of the development of TkGofer. The following files are included in the distribution as well, but you might want to have a quick look at the installation hints or at the signatures of the new prelude. The manual is available online. It gives a short description of all the widgets and explains the main concepts of TkGofer. Furthermore it contains the signatures of all the user functions of the tk.prelude. Although the manual is written for TkGofer Version 1.0, most of the descriptions are still compatible with Version 2.0.


Just to give you a small impression of programming in TkGofer, here are a few examples...

Hello World

main :: IO ()
main = start $
  do w <- window [ title "Hello"]
     b <- button [ text "Hello World!"
                 , command quit
                 ] w
     pack b


main :: IO ()
main = start $
  do w <- window [ title "Adder" ]
     e <- entry  [ initValue 0 ] w
     b <- button [ text "+"
                 , command $
                     do x <- getValue e
                        setValue e (x+1)
                 ] w
     pack (e ^-^ b)
We try to set up an archive of TkGofer applications. If you have any programs which might be interesting to other people as well, please send them to us and we will include them.
Last changes 1997.10.22, feedback. Since September 8, 1997, this page has been accessed times.