A more up-to-date version of this example can be found at

http://www.gnustep.it/marko

