Hi all,

wizards is an Haskell library 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 (see Swierstra's excellent 
paper on this topic at 
http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf), which 
separates out the semantics of the program from the wizards interface. A 
variety of backends exist, including a full featured backend for Haskeline, a 
debug-friendly simpler implementation in terms of System.IO primitives, and a 
completely pure implementation modelled as a function from an input string to 
output. It is also possible to write your own backends, or extend the 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.

The library is highly extensible - back-ends can be written or extended with 
the type system helpfully tracking what features are supported by which 
back-ends. 

Installation instructions and some educational examples are at the github page:

https://github.com/liamoc/wizards

Information on how to write backends or extend backends, as well as structured 
API documentation is available on Hackage:

http://hackage.haskell.org/package/wizards

(Or, you can just run cabal haddock to generate the documentation from the 
source).

Regards,
Liam O'Connor


_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to