[Haskell] ANNOUNCE: Phooey -- a Functional UI library for Haskell

Brian Hulley brianh at metamilk.com
Tue Dec 12 04:21:25 EST 2006

From: Conal Elliott
To: haskell at haskell.org
Sent: Tuesday, December 12, 2006 7:17 AM

> GUIs are usually programmed in an "unnatural" style, in that 
> implementation
> dependencies are inverted, relative to logical dependencies. This reversal 
> results
> directly from the imperative orientation of most GUI libraries. While 
> outputs
> depend on inputs from a user and semantic point of view, the imperative 
> approach
> imposes an implementation dependence of inputs on outputs.

This looks really interesting, but I'm struggling to understand what you 
mean by "reversal". Can you elaborate on what you mean by "the imperative 
approach  imposes an implementation dependence of inputs on outputs." In the 
model-view-controller pattern for example, I see no such reversal.

Also, suppose you have a gui consisting of an edit widget such that when the 
user types something it gets lexed, parsed, and fontified as a Haskell 
program, ie from the user's point of view the widget maintains a syntax 
highlighted view of the code which is "continuously" updated. Would your 
system do the lexing/parsing for every key that was pressed or only once, 
when the widget needs to be re-rendered (a typical gui for Windows would 
only propagate changes and re-draw the gui (ie lex/parse/fontify) when there 
are no event messages pending)?

In other words, does your system solve the problem of automatic caching of 
updates that would be solved in the imperative setting by the (admittedly 
rather messy) waiting for "nothing else happening"?

Regards, Brian.
Haskell mailing list
Haskell at haskell.org

More information about the Haskell mailing list