High level, generic library for interrogative user interfaces

Version on this page:1.0.1
LTS Haskell 15.13:[email protected]:1
Stackage Nightly 2020-05-23:[email protected]:1
Latest on Hackage:[email protected]:1

See all snapshots wizards appears in

BSD-3-Clause licensed by Liam O'Connor-Davis
Maintained by [email protected]

Module documentation for 1.0.1

This version can be pinned in stack with:[email protected]:32f91d073ad191266bcb1e932d199dcdd2579ca812ba9eab291f549fc7faddb0,3419
  • System
    • System.Console
      • System.Console.Wizard
        • System.Console.Wizard.BasicIO
        • System.Console.Wizard.Haskeline
        • System.Console.Wizard.Internal
        • System.Console.Wizard.Pure

wizards is a package designed for the quick and painless development of interrogative programs, which revolve around a "dialogue" with the user, who is asked a series of questions in a sequence much like an installation wizard.

Everything from interactive system scripts, to installation wizards, to full-blown shells can be implemented with the support of wizards.

It is developed transparently on top of a free monad, which separates out the semantics of the program from any particular interface. A variety of backends exist, including console-based System.Console.Wizard.Haskeline and System.Console.Wizard.BasicIO, and the pure System.Console.Wizard.Pure. It is also possible to write your own backends, or extend existing back-ends with new features. While both built-in IO backends operate on a console, there is no reason why wizards cannot also be used for making GUI wizard interfaces.

See the github page for examples on usage:


For creating backends, the module System.Console.Wizard.Internal has a brief tutorial.