The haskeem package

[Tags:gpl, program]

This is a moderately complete small scheme interpreter. It implements most of R6RS, with the exception of call/cc. It is however starting to have a set of delimited continuations (implemented as macros, so not quite native). It has a macro system, although not R6RS hygienic macros. It is also not necessarily fully tail-recursive; so it's not industrial-strength. For playing with or learning scheme, it should be pretty good.

[Skip to Readme]


Versions 0.6.10, 0.7.0, 0.7.4, 0.7.5, 0.7.7, 0.7.9, 0.7.12, 0.7.16
Dependencies base (==4.*), containers, directory, haskeline, haskell98, mtl, network, old-time, parsec, process, random, unix [details]
License GPL
Author Uwe Hollerbach <>
Maintainer Uwe Hollerbach <>
Category Compilers/Interpreters
Home page
Uploaded Sun Aug 2 04:53:13 UTC 2009 by UweHollerbach
Distributions NixOS:0.7.16
Downloads 1772 total (6 in the last 30 days)
0 []
Status Docs not available [build log]
All reported builds failed as of 2016-12-31 [all 7 reports]


Maintainer's Corner

For package maintainers and hackage trustees

Readme for haskeem

Readme for haskeem-0.7.9

This is haskeem, a small scheme interpreter. It lives on the web at

You should be able to build it with

    cabal configure
    cabal build

Once you have done so, find the haskeem executable and run it.
At the "lisp> " prompt, type (assuming you are still in the top-level
haskeem directory)

    (load "stdlib.scm")
    (load "selftest.scm")

The first command loads haskeem's standard library, and the second command
runs the self-test. Assuming that all works, you can automate some of this:
copy the haskeem executable and the stdlib.scm file to some standard
location(s), and then set the environment variable HASKEEM_INIT to the
absolute path of the stdlib.scm file. I store both the haskeem executable
and the stdlib.scm file in /home/uwe/tools, which is in my PATH, and thus
I set HASKEEM_INIT to /home/uwe/tools/stdlib.scm. Then I (and you) can launch
haskeem from any directory.

If you do not have haskeline installed, don't panic! There is an alternate
version of the main module in the file haskeem_readline.hs. That provides
either a binding to the gnu readline library, or an alternate REPL with no
line-editing capability at all. You'll need to rename this to haskeem.hs,
edit it to select which of the two you want, and rebuild.

Sorry, no bindings to editline.