
--------------------------------------------------------------------------- Haskell Weekly News http://sequence.complete.org/hwn/20070723 Issue 63 - July 23, 2007 --------------------------------------------------------------------------- Welcome to issue 63 of HWN, a weekly newsletter covering developments in the [1]Haskell community. This week, the HWN rises zombie-like from its repository, as your friendly HWN editor tries to get his PhD finished. This bumper issue is filled out with 100 new Haskell blog articles and dozens of new libraries! 1. http://haskell.org/ Announcements Learn Haskell in 10 minutes. Chris Smith [2]prepared a new tutorial on the basics of Haskell 2. http://haskell.org/haskellwiki/Learn_Haskell_in_10_minutes Haskell Program Coverage 0.4. Andy Gill [3]announced release 0.4 of Hpc, a tool for Haskell developers. Hpc is a tool-kit to record and display Haskell Program Coverage. Hpc includes tools that instrument Haskell programs to record program coverage, run instrumented programs, and display the coverage information obtained. 3. http://article.gmane.org/gmane.comp.lang.haskell.general/15381 Uniplate 1.0. Neil Mitchell [4]announced Uniplate (formerly known as Play), a library for boilerplate removal requiring only Haskell 98 (for normal use) and optionally multi-parameter type classes (for more advanced features). 4. http://article.gmane.org/gmane.comp.lang.haskell.general/15366 Atom: Hardware description in Haskell. Tom Hawkins [5]announced Atom, a high-level hardware description language embedded in Haskell that compiles conditional term rewriting systems into conventional HDL. 5. http://article.gmane.org/gmane.comp.lang.haskell.general/15341 Catch. Neil Mitchell [6]announced a pattern-match checker for Haskell, named Catch. Do you sometimes encounter the dreaded 'pattern match failure: head' message? Do you have incomplete patterns which sometimes fail? Do you have incomplete patterns which you know don't fail, but still get compiler warnings about them? Would you like to statically ensure the absence of all calls to error? This is what Catch helps ... catch! 6. http://article.gmane.org/gmane.comp.lang.haskell.general/15334 Haskell Communities and Activities Report. Andres Loeh [7]announced that the Haskell Communities and Activities Report is now available, covering the increasingly diverse groups, projects and individuals working on, with, or inspired by Haskell. 7. http://article.gmane.org/gmane.comp.lang.haskell.general/15302 The Reduceron. Matthew Naylor [8]announced the Reduceron, a processor for executing Haskell programs on FPGA with the aim of exploring how custom architectural features can improve the speed in which Haskell functions are evaluated. Being described entirely in Haskell (using Lava), the Reduceron also serves as an interesting application of functional languages to the design of complex control circuits such as processors. 8. http://article.gmane.org/gmane.comp.lang.haskell.general/15301 Data.Derive. Neil Mitchell [9]announced Data.Derive, a library and a tool for deriving instances for Haskell programs. It is designed to work with custom derivations, SYB and Template Haskell mechanisms. The tool requires GHC, but the generated code is portable to all compilers. We see this tool as a competitor to DrIFT. 9. http://article.gmane.org/gmane.comp.lang.haskell.general/15292 Piffle, a packet filter language. Jaap Weel [10]announced Piffle, a compiler for a packet filter language in Haskell: a good example of how Haskell can be used in an application domain (low level computer networking) where people tend to use C for everything, including writing compilers. 10. http://article.gmane.org/gmane.comp.lang.haskell.general/15290 Towards a Programming Language Nirvana. Simon Peyton-Jones [11]appears on video, talking about the Haskell path to programming language Nirvana 11. http://channel9.msdn.com/showpost.aspx?postid=326762 Yi 0.2. Jean-Philippe Bernardy [12]announced the 0.2.0 release of the Yi editor. Yi is a text editor written and extensible in Haskell. The goal of Yi is to provide a flexible, powerful and correct editor core dynamically scriptable in Haskell. Yi si also a Haskell interpreter, very much like emacs is a Lisp interpreter, this makes really easy to dynamically hack, experiment and modify Yi. All tools and goodies written in haskell are also readily available from the editor. This is implemented by binding to the GHC API. 12. http://article.gmane.org/gmane.comp.lang.haskell.general/15260 Foreign.AppleScript. Wouter Swierstra [13]announced a library for compiling and executing AppleScript from Haskell. AppleScript is a scripting language available on all modern Apple computers. It can be used to script most applications on running on MacOS X. 13. http://article.gmane.org/gmane.comp.lang.haskell.general/15246 Asterisk Gateway Interface. Jeremy Shaw [14]uploaded a simple AGI interface to [15]hackage. For more about Asterix, see [16]here. 14. http://article.gmane.org/gmane.comp.lang.haskell.general/15245 15. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/AGI 16. http://www.voip-info.org/wiki-Asterisk+AGI Harpy. Dirk Kleeblatt [17]announced Harpy, a library for run-time code generation of x86 machine code. It provides not only a low level interface to code generation operations, but also a convenient domain specific language for machine code fragments, a collection of code generation combinators and a disassembler. [18]Lennart Augustsson has written a series of articles demonstrating its use for fast EDSLs. 17. http://article.gmane.org/gmane.comp.lang.haskell.general/15237 18. http://haskell.org/haskellwiki/Blog_articles/EDSLs Yaml Reference. Gaal Yahas [19]announced a Haskell (Cabal) package containing the YAML spec productions wrapped in Haskell magic to convert them to an executable parser. The parser is streaming. It isn't intended to serve as a basis for a YAML tool chain; instead it is meant to serve as a reference implementation of the spec. 19. http://ben-kiki.org/oren/YamlReference/ Haskell' This section covers the [20]Haskell' standardisation process. * [21]Dependent types * [22]Monomorphism restriction * [23]Operator backquoting * [24]Type signatures in export lists * [25]Pragma syntax * [26]inits is too strict * [27]Module system initialisation * [28]Polymorphic strict fields 20. http://hackage.haskell.org/trac/haskell-prime 21. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2282 22. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2262 23. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2247 24. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2240 25. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2238 26. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2232 27. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2212 28. http://thread.gmane.org/gmane.comp.lang.haskell.prime/2192 Libraries This week's proposals and extensions to the [29]standard libraries. * [30]Add exeExtension to System.Info * [31]The drive functions in the filepath package * [32]Optimising words * [33]Add dropPrefix 29. http://haskell.org/haskellwiki/Library_submissions 30. http://thread.gmane.org/gmane.comp.lang.haskell.libraries/7155 31. http://thread.gmane.org/gmane.comp.lang.haskell.libraries/7129 32. http://thread.gmane.org/gmane.comp.lang.haskell.libraries/7094 33. http://thread.gmane.org/gmane.comp.lang.haskell.libraries/7032 Hackage This week's new libraries in [34]the Hackage library database. 34. http://hackage.haskell.org/ * HsOpenSSL-0.1. Masatake Daimon [35]HsOpenSSL 0.1, OpenSSL binding for Haskell 35. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HsOpenSSL-0.1 * Emping-0.3. Hans Van Thiel [36]Emping derives heuristic rules from nominal data 36. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Emping-0.3 * parsely-0.1. Samuel Bronson [37]parsely, Typeclasses for parsing monads, and some instances 37. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/parsely-0.1 * sessions-2007.7.15. Matthew Sackman [38]sessions, Session Types for Haskell 38. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/sessions-2007.7.1... * CC-delcont-0.1. Dan Doel [39]CC-delcont1, An implementation of multi-prompt delimited continuations 39. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/CC-delcont-0.1 * gd-3000.3.0. Bjorn Bringert [40]gd, A binding to the GD graphics library 40. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/gd-3000.3.0 * StrategyLib-4.0.0.0. Samuel Bronson [41]StrategyLib, Strafunski's StrategyLib 41. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/StrategyLib-4.0.0... * ports-0.4.3.2. Don Stewart [42]ports, concurrent and distributed Haskell programming in the IO monad without relying on mutable variables. 42. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/ports-0.4.3.2 * Finance-Quote-Yahoo-0.1. Brad Clawsie [43]Yahoo-0.1, Obtain quote data from finance.yahoo.com 43. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Finance-Quote-Yah... * logict-0.2. Dan Doel [44]LogicT, A continuation-based, backtracking, logic programming monad. 44. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/logict-0.2.1 * utf8-string-0.1. Eric Mertens [45]utf8-string, Support for reading and writing UTF8 Strings 45. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/utf8-string-0.1 * type-int-0.4. Edward Kmett [46]type-int, Type level 2s- and 16s- complement Integers (positive and negative), Booleans, Ord and Eq 46. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/type-int-0.4 * cgi-3001.1.5. BjornBringert [47]cgi-3001, a Haskell library for writing CGI programs 47. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/cgi-3001.1.5 * xmobar-0.6. AndreaRossato [48]xmobar, Xmobar is a minimal status bar for the XMonad Window Manager 48. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/xmobar-0.6 * monad-param-0.0.2. EdwardKmett [49]monad-param, parameterized monads 49. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/monad-param-0.0.2 * dfsbuild-1.0.1. JohnGoerzen [50]dfsbuild, dfsbuild is the program used to create the Debian From Scratch CD image. 50. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/dfsbuild-1.0.1 Conference roundup AngloHaskell is [51]coming up in Cambridge, August 10-11 Haskell Hackathon 07 II. Hac07 is [52]coming up in Freiburg, Oct 5-7 51. http://haskell.org/haskellwiki/AngloHaskell 52. http://article.gmane.org/gmane.comp.lang.haskell.general/15416 Blog noise [53]Haskell news from the [54]blogosphere. There really has been 100 new articles since the last issue! 53. http://planet.haskell.org/ 54. http://haskell.org/haskellwiki/Blog_articles * [55]ONLamp: An Introduction to Haskell * [56]ONLamp: An Introduction to Haskell: Part 2: Pure Functions * [57]Knuth-Morris-Pratt in Haskell * [58]Towards Better Error Handling * [59]Dynamic epsilons in Haskell with a bit of type hackery * [60]Null pointers vs None vs Maybe * [61]Lambda calculus in alligator form * [62]Learning Haskell databases * [63]liskell.org * [64]Norvig's spell checker and idiomatic Haskell * [65]Trying out functional programming * [66]Trying out functional programming: part 2 * [67]Roll Your Own Window Manager: Tracking Focus with a Zipper * [68]You Lazy Thunk! * [69]What's a monad? * [70]Erlang: how syntax can discourage good programming practices * [71]Regular expressions in Haskell * [72]Producing diagrams * [73]Notes on Chapter 2 of SOE * [74]Xmonad and KDE on kubuntu feisty * [75]Does XMonad crash? On proving pattern coverage with Catch 55. http://www.onlamp.com/pub/a/onlamp/2007/05/21/an-introduction-to-haskell---p... 56. http://www.onlamp.com/pub/a/onlamp/2007/07/12/introduction-to-haskell-pure-f... 57. http://twan.home.fmf.nl/blog/haskell/Knuth-Morris-Pratt-in-Haskell.details 58. http://nominolo.blogspot.com/2007/05/towards-better-error-handling.html 59. http://augustss.blogspot.com/2007/05/i-was-asked-if-my-fixed-number-module.h... 60. http://lukeplant.me.uk/blog.php?id=1107301659 61. http://worrydream.com/AlligatorEggs/ 62. http://davblog48.blogspot.com/2007/05/trying-to-learn-haskell-database.html 63. http://liskell.org/ 64. http://www.serpentine.com/blog/2007/05/14/norvigs-spell-checker-and-idiomati... 65. http://concise-software.blogspot.com/2007/05/trying-out-functional-programmi... 66. http://concise-software.blogspot.com/2007/05/trying-out-functional-programmi... 67. http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/17#xmonad_part1b_zipper 68. http://blog.tmorris.net/you-lazy-thunk/ 69. http://unenterprise.blogspot.com/2007/05/whats-monad.html 70. http://www.acooke.org/cute/ErlangsSyn0.html 71. http://michaelspeer.blogspot.com/2007/05/initial-code-at-regular-expressions... 72. http://pozorvlak.livejournal.com/55568.html 73. http://osfameron.vox.com/library/post/notes-on-chapter-2-of-soe.html 74. http://totherme.livejournal.com/4154.html 75. http://neilmitchell.blogspot.com/2007/05/does-xmonad-crash.html * [76]A simple echo server * [77]More deforestation * [78]State of the computer book market * [79]Pragmatic Haskell * [80]Analysing Haskell book sales * [81]Real-world Haskell: it's time * [82]Real-World Haskell * [83]Tim O'Reilly: Real World Haskell title under development * [84]Haskell: Ready for Prime Time * [85]Haskell's time has come * [86]Haskell Book in the Making! * [87]Finally, a book on how Haskell can be applied to 'real-world' problems! * [88]Haskell - Ready for the mainstream? * [89]Great news in the Haskell Books front * [90]Practical reasons for learning some functional languages * [91]Preconditions on XMonad * [92]Xmonad does status bars right by not doing them at all * [93]Perfect Programming Languages: Part 1, Syntactic Similarity * [94]Haskell diary, day 1 * [95]A functional programmer stole my job 76. http://abstractabsurd.blogspot.com/2007/05/couple-of-silly-examples.html 77. http://neilmitchell.blogspot.com/2007/05/13-faster-than-ghc.html 78. http://radar.oreilly.com/archives/2007/05/state_of_the_co_10.html 79. http://blogs.nubgames.com/code/?p=23 80. http://notes-on-haskell.blogspot.com/2007/05/analyzing-book-sales.html 81. http://www.realworldhaskell.org/blog/2007/05/23/real-world-haskell-its-time/ 82. http://changelog.complete.org/posts/612-Real-World-Haskell.html 83. http://radar.oreilly.com/archives/2007/05/real_world_hask.html 84. http://notes-on-haskell.blogspot.com/2007/05/haskell-ready-for-prime-time.ht... 85. http://telematique.typepad.com/twf/2007/05/haskells_time_h.html 86. http://triple.aeoth.net/2007/05/25/haskell-book-in-the-making/ 87. http://binil.wordpress.com/2007/05/24/finally-a-book-on-how-haskell-can-be-a... 88. http://blog.uncommons.org/?p=23 89. http://codemiscellany.blogspot.com/2007/05/great-news-in-haskell-books-front... 90. http://kevinoncode.blogspot.com/2007/05/functional-languages-on-horizon.html 91. http://neilmitchell.blogspot.com/2007/05/preconditions-on-xmonad.html 92. http://gimbo.org.uk/blog/2007/05/30/xmonad-does-status-bars-right/ 93. http://disparatemathematician.blogspot.com/2007/05/perfect-programming-langu... 94. http://firstian.blogspot.com/2007/05/haskell-diary-day-1.html 95. http://ocamlnews.blogspot.com/2007/05/functional-programmer-stole-my-job.htm... * [96]Haskell incarnate: robots and Haskell * [97]Chapter 3 of SOE * [98]Implementing Network.HTTP with ByteStrings * [99]Signal handling in Haskell * [100]ML, Haskell and Coq * [101]Djinn, Coq, Monad and a bit of Haskell * [102]A beginner with Parsec * [103]A perceptron in Haskell * [104]Piffle: a packet filter language with a compiler written in Haskell * [105]OriDSEL: a DSL for origami * [106]Joel's compiler in OCaml and Haskell * [107]JGraph in Haskell * [108]A neural network in Haskell * [109]Scientific.Dimension: Type Arithmetic and Physical Units in Haskell * [110]Flattening an array of arrays * [111]Travelling Salesman Problem: Introduction (in Haskell) * [112]Parallel programming, functional vs. imperative languages * [113]The impossible is only possible sometimes * [114]More Scheming with Haskell * [115]How to write tolerably efficient optimzation code without really trying... 96. http://sigfpe.blogspot.com/2007/05/haskell-incarnate.html 97. http://osfameron.vox.com/library/post/chapter-3-soe.html 98. http://nominolo.blogspot.com/2007/05/networkhttp-bytestrings.html 99. http://therning.org/magnus/archives/285 100. http://www.rubrication.net/2007/04/21/how-a-real-module-system-should-work/ 101. http://www.alpheccar.org/en/posts/show/70 102. http://davblog48.blogspot.com/2007/05/parsec.html 103. http://jpmoresmau.blogspot.com/2007/05/perceptron-in-haskell.html 104. http://usr-share-morlock.blogspot.com/2007/05/piffle-packet-filter-language_... 105. http://www.gaetanocaruana.com/2007/05/25/embedding-origami-constructs/ 106. http://wagerlabs.com/2007/5/26/who-let-the-dogs-out 107. http://equi-nox.blogspot.com/2007/05/jgraph-in-haskell.html 108. http://jpmoresmau.blogspot.com/2007/06/very-dumb-neural-network-in-haskell.h... 109. http://liftm.wordpress.com/2007/06/03/scientificdimension-type-arithmetic-an... 110. http://julipedia.blogspot.com/2007/06/flattening-array-of-arrays.html 111. http://illicittech.blogspot.com/2007/06/travelling-salesman-problem.html 112. http://enfranchisedmind.com/blog/archive/2007/06/10/251 113. http://michaelspeer.blogspot.com/2007/06/impossible-is-only-possible-sometim... 114. http://sami.samhuri.net/2007/6/14/more-scheming-with-haskell 115. http://sigfpe.blogspot.com/2007/06/how-to-write-tolerably-efficient.html * [116]Harpy: generating machine code from a Haskell * [117]A little DSL embedded in Haskell * [118]Generating more code with Harpy * [119]Representing DSL expressions in Haskell * [120]Disassembly * [121]A simple embedded compiler in Haskell * [122]Functional composition * [123]Beautiful Haskell implementation of a power set * [124]Constructability, Uncountability, and w-Haskell * [125]Uncountable Ordinals, part 2 * [126]Category Theory and Haskell 3 : Algebras and Monads * [127]The Supermarket Pricing Kata in Haskell * [128]Implementing a type for partial values * [129]Appreciating Constraint Programming * [130]Continuing with continuations in Haskell * [131]Find the Bug * [132]Haskell decision making * [133]Learning Haskell and Number Theory: The End of GCD * [134]A foray into number theory with Haskell * [135]Flatten Benchmark for Haskell 116. http://augustss.blogspot.com/2007/06/playing-with-harpy-recently-there-was.h... 117. http://augustss.blogspot.com/2007/06/massive-overload-in-my-last-post-i-had.... 118. http://augustss.blogspot.com/2007/06/generating-more-code-with-harpy-after.h... 119. http://augustss.blogspot.com/2007/06/representing-dsl-expressions-in-haskell... 120. http://augustss.blogspot.com/2007/06/disassembly-harpy-package-also-contains... 121. http://augustss.blogspot.com/2007/06/simple-compiler-in-my-last-post-i.html 122. http://neilmitchell.blogspot.com/2007/06/functional-composition.html 123. http://community.livejournal.com/evan_tech/220036.html 124. http://blog.jbapple.com/2007/06/constructability-uncountability-and.html 125. http://blog.jbapple.com/2007/06/ordinals-part-2.html 126. http://www.alpheccar.org/en/posts/show/77 127. http://blog.moertel.com/articles/2006/04/28/the-supermarket-pricing-kata-in-... 128. http://conal-elliott.blogspot.com/2007/07/implementing-type-for-partial-valu... 129. http://boriken.frayser.org/wordpress/2007/07/04/appreciating-chr-constraint-... 130. http://therning.org/magnus/archives/306 131. http://cdsmith.wordpress.com/2007/07/05/find-the-bug/ 132. http://realfiction.net/?q=node/123 133. http://cdsmith.wordpress.com/2007/07/05/learning-haskell-and-number-theory-t... 134. http://www.akalin.cx/2007/07/06/a-foray-into-number-theory-with-haskell/ 135. http://notvincenz.blogspot.com/2007/07/flatten-benchmark.html * [136]Solving an arithmetic puzzle with Haskell * [137]Haskell DataPipe * [138]Refining my first steps with Parsec * [139]Equational Reasoning in Haskell * [140]Peano's Axioms Part I: Haskell and Type Theory, and Object Oriented Programming * [141]Making Haskell faster than C! * [142]Power serious: power series in ten one-liners * [143]Haskell for Programmers: a tutorial * [144]Parameterized Monads in Haskell * [145]Monomorphism and the unintentional fib * [146]Cohatoe - Contributing Haskell to Eclipse * [147]Getting started with HUnit * [148]A Neat Problem * [149]Parsing, CFGs, and Type Hacking * [150]Using haskell for reading raw ethernet frames * [151]A simple Haskell malware: X11 keylogger * [152]I'll have a Buchburger with fries: solving XKCD's menu puzzle 136. http://byorgey.wordpress.com/2007/06/21/solving-an-arithmetic-puzzle-with-ha... 137. http://emilliken.blogspot.com/2007/07/haskell-datapipe.html 138. http://lstephen.wordpress.com/2007/06/22/refining-my-first-steps-with-parsec... 139. http://neilmitchell.blogspot.com/2007/07/equational-reasoning-in-haskell.htm... 140. http://disparatemathematician.blogspot.com/2007/07/peanos-axioms-part-i-hask... 141. http://neilmitchell.blogspot.com/2007/07/making-haskell-faster-than-c.html 142. http://www.cs.dartmouth.edu/~doug/powser.html 143. http://neugierig.org/software/darcs/haskell-for-programmers/haskell-for-prog... 144. http://comonad.com/reader/2007/parameterized-monads-in-haskell/ 145. http://koweycode.blogspot.com/2007/07/monomorphism-and-unintentional-fib.htm... 146. http://leiffrenzel.de/eclipse/cohatoe/ 147. http://leiffrenzel.de/papers/getting-started-with-hunit.html 148. http://cdsmith.wordpress.com/2007/07/17/a-neat-problem/ 149. http://cdsmith.wordpress.com/2007/07/19/parsing-cfgs-and-type-hacking/ 150. http://emilliken.blogspot.com/2007/07/using-haskell-for-reading-raw-ethernet... 151. http://emilliken.blogspot.com/2007/07/simple-haskell-malware-x11-keylogger.h... 152. http://sigfpe.blogspot.com/2007/07/ill-have-buchburger-with-fries.html Quotes of the Week * Smith's Law: Any sufficiently large test suite for a program written in a dynamic language will contain an ad-hoc, informally-specified, bug-ridden, slow, patchy implementation of half of the Haskell type system * pshaw: I think the key hook that allowed me to pass interview #2 was that I put the word 'Haskell' on my resume. * monochrom: Fear leads to uncertainty. Uncertainty leads to doubt. Doubt leads to theorem proving. * Adam Turoff: Let me start by being perfectly clear: if you are a professional programmer, then Haskell is in your future. * Apfelmus: In the end, I think that strong types is only one thing that makes Haskell programs work after compilation. The other ones are higher-order functions and *purity*. No type system can achieve what purity offers. About the Haskell Weekly News Each week, new editions are posted to [153]the Haskell mailing list as well as to [154]the Haskell Sequence and [155]Planet Haskell. [156]RSS is also available, and headlines appear on [157]haskell.org. Headlines are available as [158]PDF. To help create new editions of this newsletter, please see the [159]contributing information. Send stories to dons at cse.unsw.edu.au. The darcs repository is available at darcs get [160]http://www.cse.unsw.edu.au/~dons/code/hwn 153. http://www.haskell.org/mailman/listinfo/haskell 154. http://sequence.complete.org/ 155. http://planet.haskell.org/ 156. http://sequence.complete.org/node/feed 157. http://haskell.org/ 158. http://www.cse.unsw.edu.au/~dons/code/hwn/archives/20070723.pdf 159. http://haskell.org/haskellwiki/HWN 160. http://www.cse.unsw.edu.au/~dons/code/hwn