fudgets: The Fudgets Library

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Fudgets is a Graphical User Interface Toolkit built in Haskell on top of the X11 Windows system in the early 1990s. There is an FPCA-93 paper about it. Fudgets also makes it easy to create client/server applications that communicate via the Internet.

This package includes the Fudgets library and a few small examples and demo applications.


[Skip to Readme]

Properties

Versions 0.18.2
Change log None available
Dependencies array, base (==4.*), containers, directory (>=1.2.3), fudgets, old-time, parallel, process, random, time, unix [details]
License LicenseRef-OtherLicense
Author Thomas Hallgren and Magnus Carlsson
Maintainer Thomas Hallgren
Category GUI, Network, Concurrency
Home page http://www.altocumulus.org/Fudgets/
Uploaded by ThomasHallgren at 2020-11-03T17:55:46Z

Modules

Manual Flags

NameDescriptionDefault
developer

Enable options useful for developers of this library

Disabled
Automatic Flags
NameDescriptionDefault
old-time

Use the old-time package

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for fudgets-0.18.2

[back to package description]

¤ Fudgets ¤

Fudgets is primarily a Graphical User Interface Toolkit implemented in Haskell on top of its own binding to the Xlib library of the X Windows system. Fudgets also makes it easy to create client/server applications that communicate via the Internet. The Hello world program fits on a single line:

main = fudlogue (shellF "Hello" (labelF "Hello world!"))

The key abstraction is the fudget. A fudget is a stream processor with high-level and low-level streams. The high level streams are used for communication between fudgets within a program. The low level streams are for communication with the I/O system.

Fudgets are combined using various combinators for parallel composition, serial composition and loops.

Fudgets was originally implemented in Lazy ML in the early 1990s, then converted to Haskell. It was thus designed before monadic IO was introduced in Haskell and early versions did not make use of Haskell's type classes at all.

Documentation

Installing Fudgets from Hackage

On Linux systems

On macOS