The common gateway interface (CGI) is one of the prevalent methods to provide dynamic contents on the Web. Since it is cumbersome
to use in its raw form, there are many libraries that make CGI programming easier.
WASH/CGI is a Haskell library for server-side Web scripting. Its implementation relies on CGI, but its use avoids most of
CGI’s drawbacks. It incorporates the concept of a session, provides a typed, compositional approach to constructing interaction
elements (forms), and relies on callbacks to specify control flow. From a programmer’s perspective, programming WASH/CGI is
like programming a graphical user interface (GUI), where the layout is specified using HTML via a novel monadic interface.
Keywords Haskell - Monads - CGI Programming