[Haskell-cafe] Re: What is the maturity of Haskell Web Frameworks

apfelmus apfelmus at quantentunnel.de
Thu Jun 5 06:31:27 EDT 2008

Paul L wrote:
> Pardon me to hijack this thread, but I have an idea to build a
> different kind of Web Framework and am not sure if somebody has
> already done it.
> The idea is to take REST further: every HTML page you see is a program
> in its running state (as a continuation monad). Each click on its link
> or form submission is seen as feeding data to resume its continuation.
> So instead of writing a server-side program that responds to many CGI
> calls, you write a single ordinary program that describe the
> application logic, which during its execution gets represented as a
> HTML page and interpreted by the server.

WASH/CGI has something in that direction. I don't know a short 
introduction, but have a look at sections 4 and 8 of the implementation 


The basic idea is that  displayForm  in a CGI-script like

   main = do
    password <- displayForm $ (label "Enter password" <-> editbox)

displays a HTML-page to the client, "waits" for a response and then 
resumes execution. It does not actually wait, but captures the 
continuation in the transmitted HTML page, for instance by saving a log 
of the previous events.

This is related to [MonadPrompt], which has a similar purpose, and to 
[Unimo], which is pretty much the same but from the slightly different 
viewpoint of implementing any monad directly from its operational semantics.

   [Unimo]: Chuan-Kai Lin. Programming Monads Operationally with Unimo.
   [MonadPrompt]: Ryan Ingram.


More information about the Haskell-Cafe mailing list