Hi,
Thanks for your comments, Steve. They're getting me closer to a clear explanation, which will be helpful in the paper I'm writing.
I was going to polish up PropLang before releasing it, but if you're writing a paper, and I go and release PropLang just after you've put the finishing touches on it, you'll hunt me down and kill me :) As such, here is an announcement that PropLang exists, and is cool. See the darcs repo: http://www.cs.york.ac.uk/fp/darcs/proplang/ - and hopefully see some documentation in the future :) No arrows, but seems to have the same underlying idea. The darcs repo has a text editor (it had another sample, I'm sure, but I can't see it!) Some selected hilights: -- CREATE VARIABLES -- is a document open document <- newVar False -- is a document modified modified <- newVar False -- the filename of the document, if its been saved filename <- newVar Nothing -- SET UP RELATIONS BETWEEN PROPERTIES txt!enabled =<= document new!enabled =< with1 document not saveas!enabled =< with2 document modified (&&) --save!enabled =< with2 document modified (&&) save!enabled =< (&&) =$$= document =$= modified close!enabled =<= document revert!enabled =<= modified -- SUPPORTS EVENTS TOO new!onClicked += newDocument gui save!onClicked += saveDocument gui saveas!onClicked += saveAsDocument gui close!onClicked += closeDocument gui open!onClicked += openDocument gui -- COOL AND SIMPLE UNDO revert!onClicked += (txt!text -<- lasttxt) modified =< with2 (txt!text) (lasttxt) (/=) let titleformat d m f = "TextEditor" ++ (if d then " - " ++ maybe "<untitled>" id f else "") ++ (if m then " *" else "") -- REALLY COOL SETTING OF THE TITLE AUTOMATICALLY window!text =< titleformat =$$= document =$= modified =$= filename -- CREATE A STATUS BAR WITH THE WORD COUNT IN ONE LINE! sb!text =< (\x -> "Word count: " ++ show (length $ words x)) =$$= txt!text I'll write up a tutorial or something at some point. It's written using Gtk2Hs, and works fine on both Linux and Windows. GuiHaskell is written using this: http://www-users.cs.york.ac.uk/~ndm/projects/guihaskell.php Thanks Neil _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell