[Haskell-cafe] Haskell Weekly News: December 12, 2006

Donald Bruce Stewart dons at cse.unsw.edu.au
Tue Dec 12 02:59:30 EST 2006

Haskell Weekly News
Issue 53 - December 12, 2006

   Welcome to issue 53 of HWN, a weekly newsletter covering developments
   in the Haskell community.

   Lots of new, practical Haskell libraries released this week, including
   support for ogg sound file parsing, a new user interface library, ftp
   clients and servers, database bindings as well as config files and


   Visual Haskell 0.2. Krasimir Angelov [1]announced the final version of
   [2]Visual Haskell 0.2 is available! This is the first version that is:
   available for both VStudio 2003 and VStudio 2005; distributed with a
   stable GHC version (6.6). Additionally the plugin itself is much more
   stable than its first 0.0 version.

   1. http://article.gmane.org/gmane.comp.lang.haskell.general/14608
   2. http://www.haskell.org/visualhaskell

   Phooey: functional user interfaces for Haskell. Conal Elliott
   [3]announced Phooey, [4]a functional UI library for Haskell. 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. Phooey ('Phunctional ooser
   ynterfaces') retains the functional style, in which outputs are
   expressed in terms of inputs. In addition, Phooey supports dynamic
   input bounds, flexible layout, and mutually-referential widgets. It is
   [5]available via darcs.

   3. http://article.gmane.org/gmane.comp.lang.haskell.general/14635
   4. http://darcs.haskell.org/packages/phooey/doc
   5. http://darcs.haskell.org/packages/phooey

   HOgg 0.2.0. Conrad Parker [6]announced HOgg 0.2.0. The [7]HOgg package
   provides a commandline tool for manipulating Ogg files, and a
   corresponding Haskell library. This is the initial public release. The
   focus is on correctness of Ogg parsing and production. The
   capabilities of the hogg commandline tool are roughly on par with
   those of the [8]oggz* tools, although hogg does not yet provide an
   equivalent to oggz-validate. HOgg supports chained and multiplexed Ogg
   bitstreams conformant with [9]RFC3533. HOgg can parse headers for
   CMML, FLAC, OggPCM, Speex, Theora and Vorbis media codecs, and can
   read and write Ogg Skeleton bitstreams.

   6. http://article.gmane.org/gmane.comp.lang.haskell.cafe/17102
   7. http://snapper.kfish.org/~conrad/software/hogg/
   8. http://www.annodex.net/software/liboggz/index.html
   9. http://www.ietf.org/rfc/rfc3533.txt
  10. http://article.gmane.org/gmane.comp.lang.haskell.general/14610

   ftphs. John Goerzen [10]announced ftphs, [11]an FTP client and server
   library for Haskell. Its features include: easy to use operation; full
   support of text and binary transfers; optional lazy interaction;
   server can serve up a real or a virtual filesystem tree; Standards
   compliant. ftphs was previously a part of the MissingH library. The
   code in this release is unchanged from its state in MissingH, other
   than the changes necessary to make it a standalone package.

  11. http://software.complete.org/ftphs

   AnyDBM 1.0.0. John Goerzen [12]announced AnyDBM, a generic DBM-type
   interface. [13]AnyDBM provides a generic infrastructure for supporting
   storage of hash-like items with String-to-String mappings. It can be
   used for in-memory or on-disk storage. Two simple backend drivers are
   included with this package: one that is RAM-only, and one that is
   persistent and disk-backed. The hdbc-anydbm package provides another
   driver, which lets you use simple tables in any SQL database to
   provide a DBM-like interface. MissingPy also provides a Python driver
   which lets you use any Python anydbm driver under Haskell AnyDBM.

  12. http://article.gmane.org/gmane.comp.lang.haskell.general/14613
  13. http://software.complete.org/anydbm

   ConfigFile 1.0.0. John Goerzen [14]announced ConfigFile, a parser and
   writer for handling sectioned config files in Haskell. The
   [15]ConfigFile module works with configuration files in a standard
   format that is easy for the user to edit, easy for the programmer to
   work with, yet remains powerful and flexible. It is inspired by, and
   compatible with, Python's ConfigParser module. It uses files that
   resemble Windows .INI-style files, but with numerous improvements.

  14. http://article.gmane.org/gmane.comp.lang.haskell.general/14612
  15. http://software.complete.org/configfile

   hslogger. John Goerzen [16]announced hslogger, a logging framework for
   Haskell. [17]hslogger's features include: each log message has a
   priority and a source associated with it; multiple log writers can be
   on the system; configurable global actions based on priority and
   source; extensible log writers (handlers); default handlers that write
   to the console, file handles, or syslog; easy to use operation.
   hslogger is the first package to be split off from the MissingH

  16. http://article.gmane.org/gmane.comp.lang.haskell.general/14611
  17. http://software.complete.org/hslogger

   MissingH 0.18.0. John Goerzen [18]announced MissingH 0.18.0.
   [19]MissingH is a large collection of assorted utility libraries for
   Haskell. Its primary audience is Haskell programmers that want to get
   practical things done fast. This release implements the first part of
   the MissingH transition. The major changes are: most code from other
   sources that had been merged into MissingH has been split off; stable,
   mostly standalone components of MissingH have been split off:
   hslogger, ftphs, ConfigFile, AnyDBM, and all modules renamed to more
   closely follow current Haskell naming practices.

  18. http://article.gmane.org/gmane.comp.lang.haskell.general/14614
  19. http://software.complete.org/missingh

   ZMachine 0.0. Samuel Bronson [20]announced a (partial) Z-machine
   interpreter in Haskell. It uses gtk2hs for the interface, though other
   interfaces could be implemented without actually changing the
   interpreter proper. The Z-machine is a virtual machine that was
   developed by Joel Berez and Marc Blank in 1979 and used by Infocom for
   its text adventure games.

  20. http://article.gmane.org/gmane.comp.lang.haskell.glasgow.user/11397

   Halp: Haskell Logic Prover. Dan Mead [21]announced the release of
   Halp, the simple logic prover. Right now it only supports simple first
   order logic but predicates are on the way. Theres also a simple gui
   written in Java 5 which is in the [22]darcs repository.

  21. http://article.gmane.org/gmane.comp.lang.haskell.cafe/17104/
  22. http://taz.cs.wcupa.edu/~dmead/code/halp/

   DList 0.1. Don Stewart [23]announced dlist 0.1, a library for
   difference lists in Haskell. Difference lists are a Haskell idiom for
   implementing O(1) append on lists, using functions to represent the

  23. http://article.gmane.org/gmane.comp.lang.haskell.general/14623


   This section covers the [24]Haskell' standardisation process.

     * [25]Infix multiparameter type classes
     * [26]Type sections
     * [27]Are pattern guards obsolete?

  24. http://hackage.haskell.org/trac/haskell-prime
  25. http://thread.gmane.org/gmane.comp.lang.haskell.prime/1948/focus=1948
  26. http://thread.gmane.org/gmane.comp.lang.haskell.prime/1955/focus=1955
  27. http://thread.gmane.org/gmane.comp.lang.haskell.prime/1956/focus=1956


   Ninety Nine Haskell Problems. Andrew Wagner [28]mentioned that 99 Lisp
   exercises have been [29]ported to Haskell. Solving these exercises is
   a great way for relatively new haskell programmers to contribute
   something, since most of the problems are relatively simple. So have
   at them! All you need to do is write a canonical Haskell solution, and
   add it to the wiki. Please follow the instructions for 'reserving' a
   problem so we're not all duplicating each others' work. We should be
   able to knock these problems out in a matter of hours!

  28. http://article.gmane.org/gmane.comp.lang.haskell.cafe/17324
  29. http://haskell.org/haskellwiki/99_Haskell_exercises

   MissingH status. John Goerzen [30]announced that MissingH now has
   [31]a new Trac-based homepage, complete with wiki, Darcs repository
   information, source browser, bug tracker, and the various pieces of
   MissingH have been split off already into separate packages. The full
   list of changes is [32]available.

  30. http://article.gmane.org/gmane.comp.lang.haskell.cafe/17156
  31. http://software.complete.org/missingh
  32. http://software.complete.org/missingh/wiki/TransitionPlanning

   Reversing a string of words: C# v Perl v Ruby v Haskell. Andrew Savige
   [33]invoked the Haskell cafe magicians with a comparison of string
   processing support across languages.

  33. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/17197/focus=17197

   Unlifted type variables in GHC. Brian Alliet [34]asked about the
   intricacies of supporting type variables with an unlifted kind.

  34. http://thread.gmane.org/gmane.comp.lang.haskell.glasgow.user/11397/focus=11397

   Wanted: libraries. Don Stewart [35]asked for information about missing
   or substandard libraries to be documented on the wiki.

  35. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/17222/focus=17222

   Haskell for Dummies. Kirsten Chevalier [36]launched an interesting
   discussion to produce a new 'Practical Haskell' or 'Haskell for
   Dummies' textbook.

  36. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/17240/focus=17240

   Stratified monads. Mark Carroll [37]asked about experience with
   Espinosa's stratified monads in Haskell.

  37. http://thread.gmane.org/gmane.comp.lang.haskell.cafe/17266/focus=17266

Conference roundup

   hal: Haskell in Leipzig. [38]More than 25 Haskellers from all over
   Germany gathered in Leipzig for the first HaL, Haskell in Leipzig,
   meeting. The range of different backgrounds was broad and spanned both
   the academic and the business worlds, encompassing seasoned Haskell
   programmers as well as beginners. 
   There were five talks and two discussion sessions, and a functional
   breakfast. One of the discussion sessions had IDE support (in
   particular, in Eclipse) as its topic, the other focused on the
   possibilities for promoting Haskell in the software industry. The
   talk topics ranged from the use of Haskell in web technology and in
   climate research, to specifics of programming (MonadFix, coding
   guidelines). A very Haskell-like language (CAL Quark) that offers
   access to Java libraries and can be compiled to JVM bytecode was also
   introduced. A second 'Haskell in Leipzig' meeting is planned for
   early spring 2007. [39]Summaries of the talks are available.

  38. http://iba-cg.de/haskell.html
  39. http://iba-cg.de/haskell.html

   The Haskell Hackathon. The Hac organisers [40]announced that extended
   registration for Hac 07, the Haskell libraries and infrastructure
   hackathon is open, via the [41]Hac website.

  40. http://article.gmane.org/gmane.comp.lang.haskell.cafe/17132
  41. http://haskell.org/haskellwiki/Hac_20007

Blog noise

   [42]Haskell news from the blogosphere.

     * [43]A Tree Grows Up in Haskell: Building a Dictionary Type
     * [44]Functional programming is a silver bullet
     * [45]Silver Bullets Incoming!
     * [46]The Division Bell Tolls for Me, Part One
     * [47]The Division Bell Tolls for Me, Part Two
     * [48]The Division Bell Tolls for Me, Part Three
     * [49]The Division Bell Tolls for Me, Part Four (Conclusion)
     * [50]The Divisive Aftermath
     * [51]Non-standard analysis, automatic differentiation, Haskell, and
       other stories
     * [52]Adventures in Haskell: parsing the game world
     * [53]Generalised Haskell
     * [54]Haskell tool tips
     * [55]Reconsidering my approach to learning Haskell
     * [56]A Sermon on Programming Languages
     * [57]Polyglot Programming
     * [58]Fibonacci series one-liner in Haskell
     * [59]An infinite list in Java
     * [60]The beauty of Haskell
     * [61]On Unit Testing and Type Safety
     * [62]Rewriting PLEAC Haskell?
     * [63]A newbie in Haskell land : The (->) monad
     * [64]Quick interpreters with the Reader monad
     * [65]bhc: Basic Haskell Compiler
     * [66]The lambda revolution: how you can help

  42. http://planet.haskell.org/
  43. http://scienceblogs.com/goodmath/2006/12/a_tree_grows_up_in_haskell_bui_1.php
  44. http://cogito.blogthing.com/2006/12/06/no-silver-bullet-and-functional-programming/
  45. http://cogito.blogthing.com/2006/12/08/silverbulletsincoming/
  46. http://praisecurseandrecurse.blogspot.com/2006/12/division-bell-tolls-for-me.html
  47. http://praisecurseandrecurse.blogspot.com/2006/12/division-bell-tolls-for-me-part-two.html
  48. http://praisecurseandrecurse.blogspot.com/2006/12/division-bell-tolls-for-me-part-three.html
  49. http://praisecurseandrecurse.blogspot.com/2006/12/division-bell-tolls-for-me-part-four.html
  50. http://praisecurseandrecurse.blogspot.com/2006/12/divisive-aftermath.html
  51. http://vandreev.wordpress.com/2006/12/04/non-standard-analysis-and-automatic-differentiation/
  52. http://jpmoresmau.blogspot.com/2006/12/adventures-in-haskell-parsing-game.html
  53. http://neilmitchell.blogspot.com/2006/12/generalised-haskell.html
  54. http://monad.carnalreason.org/wordpress/?p=21
  55. http://monad.carnalreason.org/wordpress/?p=20
  56. http://www.dailyspeculations.com/
  57. http://memeagora.blogspot.com/2006/12/polyglot-programming.html
  58. http://gimbo.org.uk/archives/2006/12/#001887
  59. http://jpmoresmau.blogspot.com/2006/12/in-haskell-you-can-define-infinite.html
  60. http://clemens.endorphin.org/weblog/archives/2006-06.shtml#e2006-06-23T09_16_52.txt
  61. http://blogs.teamb.com/craigstuntz/archive/2006/12/08/UnitTestingAndTypeSafety.aspx
  62. http://koweycode.blogspot.com/2006/12/rewriting-pleac-haskell.html
  63. http://www.alpheccar.org/en/posts/show/61
  64. http://cgi.cse.unsw.edu.au/~dons/blog/2006/12/11#interpreters-with-reader-monads
  65. http://neilmitchell.blogspot.com/2006/12/bhc-basic-haskell-compiler.html
  66. http://www.cse.unsw.edu.au/~dons/blog/2006/12/11#release-a-library-today

Quotes of the Week

     * Jim Apple: The Haskell list probably has the widest 'knowledge
       bandwidth' of any mailing list I've ever seen, from total beginner
       questions to highly abstruse stuff which probably represents the
       cutting edge of PhD research. All are answered with detail and
       good humour.

     * [Seen on the Haskell mailing list]: Wow! I found your help
       terrific! Thank you! Can I give you some money?

     * Paul Johnson: Is functional programming an actual bona-fide silver
       bullet as defined by Brooks? I believe it is. Functional
       programming is based on a sound theory of scalable software
       engineering, and the empirical evidence clearly and consistently
       supports the theory.

     * Clemens Fruhwirth: After all the elegance I have to conclude that
       Haskell definitely deserves to be looked at.

     * sorear: Haskell is amazing. I'm still working on my infinite-types
       unifier, and in a day I've added sums, products, and lambda
       abstractions, refactored the code until there was a net *decrease*
       in LOC, and helped man #haskell all at the same time. This'd take
       me a week in C, no doubt.

     * Claus Reinke: The aim of update programming is to transform a
       store whose contents describe a problem into a store whose
       contents describe a solution. The aim of functional programming is
       to transform a program which describes a problem into a program
       which describes a solution.

     * Daveman: What if I don't want to obey the laws? Do they throw me
       in jail with the other bad monads?

     * Stinger: Sometimes Haskell seems like an arms race between weird
       mathematical constructs and my brain

     * astrolabe: Below a certain level of competence, coding is a
       destructive act. Like playing the violin.

     * dons: Gimme some lambda warez!

     * wy: [wy] lennart: Wow. You won the IOCCC three times! [augustss]
       I'm bad at C programming ;)

     * shapr: I think the Haskell approach works fine. That is, stick
       with research and do the best you can. Then after fifteen years of
       gestation, take over the world.

     * edwinb: Where does 'Oleg cornered me in a pub and explained
       delimited continuations to me' fit in?

     * emu: Design patterns are what you choose for wallpaper and carpets

     * kyevan: My skull is already mostly duct tape. And I'm only on page
       25 of YAHT!

     * shapr: There's an important niche market for OSes that don't

Code Watch

   Tue Dec 5 23:18:45 PST 2006. Simon Peyton Jones. [67]Improve
   dependency analysis makes more dictionaries inlinable.

  67. http://article.gmane.org/gmane.comp.lang.haskell.cvs.ghc/18123

   Sat Dec 9 09:42:03 PST 2006. Ian Lynagh. [68]Add PowerPC to the list
   of SMP arches

  68. http://article.gmane.org/gmane.comp.lang.haskell.cvs.ghc/18173

   Mon Dec 11 14:25:34 PST 2006. Wolfgang Thaller. [69]Support
   MO_WriteBarrier in PowerPC NCG (lwsync instruction).

  69. http://article.gmane.org/gmane.comp.lang.haskell.cvs.ghc/18217

About the Haskell Weekly News

   Each week, new editions are posted to [70]the Haskell mailing list as
   well as to [71]the Haskell Sequence and [72]Planet Haskell. [73]RSS is
   also available, and headlines appear on [74]haskell.org. Headlines are
   available as [75]PDF. The Haskell Weekly News is also [76]available in
   Spanish translation.

   To help create new editions of this newsletter, please see the
   [77]contributing information. Send stories to dons at cse.unsw.edu.au.
   The darcs repository is available at darcs get

  70. http://www.haskell.org/mailman/listinfo/haskell
  71. http://sequence.complete.org/
  72. http://planet.haskell.org/
  73. http://sequence.complete.org/node/feed
  74. http://haskell.org/
  75. http://www.cse.unsw.edu.au/~dons/code/hwn/archives/20061212.pdf
  76. http://haskell.org/haskellwiki/HWN/es
  77. http://haskell.org/haskellwiki/HWN
  78. http://www.cse.unsw.edu.au/~dons/code/hwn

More information about the Haskell-Cafe mailing list