1 Applications

1.1 Standalone operating systems

House is a platform for exploring various ideas relating to low-level and system-level programming in a high-level functional language, or in short for building operating systems in Haskell. A more up to date, unofficial version.

1.3 Hardware emulators

ZMachine is a Z-machine (Infocom's interactive fiction VM) interpreter which currently needs attention to its UI rather badly. This points to the darcs repository, as I suppose you can tell. It uses Gtk2Hs, but it just goes down hill from there. Help welcome! --SamB 03:40, 6 December 2006 (UTC) (the author)

1.4 Window managers

A tiling window manager based on xmonad which focuses on making the tiling paradigm easily accessible to users coming from traditional window managers by drawing on known conventions and providing both mouse and keyboard access for all features. It also tries to be usable 'out of the box', requiring minimal to no configuration in most cases.

1.5 Shell utilities

h4sh provides a set of Haskell List functions as normal unix shell commands. This allows us to use Haskell in shell scripts transparently. Each program is generated from the corresponding Haskell function's type

1.6 Package management

2 Libraries

2.1 Filesystems

David Roundy's combination of a nice DarcsIO-style filesystem interface on the Haskell side (called FuseIO) with an interface to libfuse (which is a library for creating filesystems from user space on linux).

2.3 Processes

Process is a fun library for easing decomposition of algorithms to several processes, which transmit intermediate data via Unix-like pipes. Each sub-process is just a function started with forkIO/forkOS with one additional parameter-pipe.

2.4 Environment

This module provides an advanced option parsing routine which can properly parse options depending on what types are infered for them as well as produce a pretty error message with usage info when an incorrect option is used.

2.5 Time

TimeLib is an attempt to redesign the current library for handling time (System.Time), balancing expressive functionality and intelligible simplicity. Now at version 0.2, TimeLib features representation of TAI, UTC and UT1, as well as Gregorian, ISO 8601 week, and "year and day" calendars, time-zones, and functions for strftime-style formatting. We'd like to collect some additional documentation on this wiki, too: Time library

Provides the function 'rdtsc' for accessing the time stamp counter on modern IA-32 processors. This is a 64-bit counter which counts the number of ticks since the machine has been powered up. Using this instruction, you can make very precise time measurements.

2.7 Shell

2.7.1 Haskell shell examples

A library for using Haskell for tasks which are usually done by shell scripts, e.g. command line parsing, analysing paths, etc. It can be used also for tasks usually done GetOpt (a module for GNU-/POSIX-like option handling of commandline arguments). But also for many other things.

2.7.2 Link collections on pure functional shells

2.8 File utilities

magic-haskell is a binding to the libmagic library. With magic-haskell, you can determine the type of a file by looking at its contents rather than its name. This library also can yield the MIME type of a file by looking at its contents.