text:
Haskell Weekly News: February 10, 2008
Welcome to issue 69 of HWN, a newsletter covering developments in the Haskell community.
A quick update HWN this week, with a gazillion new libraries on Hackage
HackageNew and updated libraries in the Hackage library database.
WordNet 0.1.1. Uploaded by Max Rabkin. WordNet: Haskell interface to the WordNet database.
lazysmallcheck 0.1. Uploaded by Gwern Branwen. lazysmallcheck: A library for demand-driven testing of Haskell programs.
DrIFT 2.2.3. Uploaded by Gwern Branwen. DrIFT: Program to derive type class instances.
highlighting-kate 0.2. Uploaded by John MacFarlane. highlighting-kate: Syntax highlighting.
leksah 0.1. Uploaded by Juergen NicklischFranken. leksah: Genuine Haskell Face.
frag 1.1. Uploaded by Gwern Branwen. frag: 3-D First Person Shooter (FPS).
GoogleChart 0.2. Uploaded by Evan Martin. GoogleChart: Generate web-based charts using the Google Chart API.
HFuse 0.1. Uploaded by Gwern Branwen. HFuse: HFuse is a binding for the Linux FUSE library.
GoogleChart 0.1. Uploaded by Evan Martin. GoogleChart: Generate web-based charts using the Google Chart API.
Finance-Quote-Yahoo 0.5.0. Uploaded by Brad Clawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com.
binary-strict 0.3.0. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.
Stream 0.2.3. Uploaded by Wouter Swierstra. Stream: A library for manipulating infinite lists..
Finance-Treasury 0.1.1. Uploaded by Stephen Lihn. Finance-Treasury: Obtain Treasury yield curve data.
Hedi 0.1. Uploaded by Paolo Veronelli. Hedi: Line oriented editor.
newports 1.1. Uploaded by Brad Clawsie. newports: List ports newer than N days on a FreeBSD system.
Finance-Treasury 0.1. Uploaded by Stephen Lihn. Finance-Treasury: Obtain Treasury yield curve data.
GPLib 0.0. Uploaded by Gwern Branwen. GPLib: Generic library for genetic programming.
nano-hmac 0.1.1. Uploaded by Hitesh Jasani. nano-hmac: Bindings to OpenSSL HMAC..
multiset 0.1. Uploaded by Twan VanLaarhoven. multiset: The Data.MultiSet container type.
hpodder 1.1.0. Uploaded by John Goerzen. hpodder: Podcast Aggregator (downloader).
bimap 0.2.1. Uploaded by Stuart Cook. bimap: Bidirectional mapping between two key types.
monadLib 3.4.4. Uploaded by Iavor Diatchki. monadLib: A collection of monad transformers..
IOSpec 0.2. Uploaded by Wouter Swierstra. IOSpec: A pure specification of the IO monad..
bimap 0.2. Uploaded by Stuart Cook. bimap: Bidirectional mapping between two key types.
strictify 0.1. Uploaded by Sterling Clover. strictify: Find a local optimum of strictness annotations..
heap 0.2.2. Uploaded by Stephan Friedrichs. heap: Heaps in Haskell.
LDAP 0.6.4. Uploaded by John Goerzen. LDAP: Haskell binding for C LDAP API.
HStringTemplate 0.2. Uploaded by Sterling Clover. HStringTemplate: StringTemplate implementation in Haskell..
RJson 0.3.2. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..
network-dns 0.1.1. Uploaded by Adam Langley. network-dns: A pure Haskell, asyncronous DNS client library.
lcs 0.2. Uploaded by Ian Lynagh. lcs: Find longest common sublist of two lists.
tracker 0.1. Uploaded by Will Thompson. tracker: Client library for Tracker metadata database, indexer and search tool.
CC-delcont 0.2. Uploaded by Dan Doel. CC-delcont: Delimited continuations and dynamically scoped variables.
control-timeout 0.1.2. Uploaded by Adam Langley. control-timeout: Timeout handling.
network-dns 0.1. Uploaded by Adam Langley. network-dns: A pure Haskell, asyncronous DNS client library.
binary-strict 0.2.4. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.
heap 0.1.1. Uploaded by Stephan Friedrichs. heap: Heaps in Haskell.
HCL 1.3. Uploaded by Justin Bailey. HCL: High-level library for building command line interfaces..
yi 0.3. Uploaded by Jean PhilippeBernardy. yi: The Haskell-Scriptable Editor.
binary-strict 0.2.3. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.
heap 0.1. Uploaded by Stephan Friedrichs. heap: Heaps in Haskell.
pureMD5 0.1.2. Uploaded by Thomas DuBuisson. pureMD5: MD5 implementations that should become part of a ByteString Crypto package..
RJson 0.3.1. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..
template 0.1.1.1. Uploaded by Johan Tibell. template: Simple string substitution.
network-bytestring 0.1.1.1. Uploaded by Johan Tibell. network-bytestring: Fast and memory efficient low-level networking.
ftphs 1.0.4. Uploaded by John Goerzen. ftphs: FTP Client and Server Library.
mersenne-random-pure64 0.1.1. Uploaded by Donald Stewart. mersenne-random-pure64: Generate high quality pseudorandom numbers purely using a Mersenne Twister.
Diff 0.1. Uploaded by Sterling Clover. Diff: O(ND) diff algorithm in haskell..
crack 0.1. Uploaded by Trevor Elliott. crack: A haskell binding to cracklib.
miniplex 0.3.3. Uploaded by Lukas Mai. miniplex: simple 1-to-N interprocess communication.
colock 0.2.2. Uploaded by Lukas Mai. colock: thread-friendly file locks that don't block the entire program.
mersenne-random-pure64 0.1. Uploaded by Donald Stewart. mersenne-random-pure64: Generate high quality pseudorandom numbers purely using a Mersenne Twister.
network-rpca 0.0.1. Uploaded by Adam Langley. network-rpca: A cross-platform RPC library.
xmonad-contrib 0.6. Uploaded by Spencer Janssen. xmonad-contrib: Third party extensions for xmonad.
xmonad 0.6. Uploaded by Spencer Janssen. xmonad: A tiling window manager.
codec-libevent 0.1.2. Uploaded by Adam Langley. codec-libevent: Cross-platform structure serialisation.
bytestringparser 0.3. Uploaded by Bryan OSullivan. bytestringparser: Combinator parsing with Data.ByteString.Lazy.
HStringTemplate 0.2. Uploaded by Sterling Clover. HStringTemplate: StringTemplate implementation in Haskell..
value-supply 0.1. Uploaded by Iavor Diatchki. value-supply: A library for generating values without having to thread state..
derive 0.1.1. Uploaded by Neil Mitchell. derive: A program and library to derive instances for data types.
control-timeout 0.1.1. Uploaded by Adam Langley. control-timeout: Timeout handling.
mkcabal 0.4.1. Uploaded by Donald Stewart. mkcabal: Generate cabal files for a Haskell project.
regexpr 0.2.9. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.
mtlparse 0.0.0.5. Uploaded by Yoshikuni Jujo. mtlparse: parse library use mtl package.
cgi 3001.1.5.2. Uploaded by Bjorn Bringert. cgi: A library for writing CGI programs.
xhtml 3000.0.2.2. Uploaded by Bjorn Bringert. xhtml: An XHTML combinator library.
harpy 0.4. Uploaded by Martin Grabmueller. harpy: Runtime code generation for x86 machine code.
editline 0.2. Uploaded by Judah Jacobson. editline: Bindings to the editline library (libedit)..
hmatrix 0.2.0.0. Uploaded by Alberto Ruiz. hmatrix: Linear algebra and numerical computations.
regexpr 0.2.8. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.
pcre-light 0.3. Uploaded by Donald Stewart. pcre-light: A small, efficient and portable regex library for Perl 5 compatible regular expressions.
mersenne-random 0.1. Uploaded by Donald Stewart. mersenne-random: Generate high quality pseudorandom numbers using a SIMD Fast Mersenne Twister.
AvlTree 2.4. Uploaded by Adrian Hey. AvlTree: Balanced binary trees using AVL algorithm..
fec 0.1.1. Uploaded by Adam Langley. fec: Forward error correction of ByteStrings.
COrdering 2.1. Uploaded by Adrian Hey. COrdering: An algebraic data type similar to Prelude Ordering..
i18n 0.3. Uploaded by Eugene Grigoriev. i18n: Internationalization for Haskell.
binary-strict 0.2.2. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.
regexpr 0.2.6. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.
RJson 0.2. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..
regexpr 0.2.5. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.
fec 0.1. Uploaded by Adam Langley. fec: Forward error correction of ByteStrings.
dataenc 0.10.2. Uploaded by Magnus Therning. dataenc: Data encoding library.
regexpr 0.2.3. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.
regexpr 0.2.2. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.
reactive 0.3. Uploaded by Conal Elliott. reactive: Simple foundation for functional reactive programming.
regexpr 0.2.1. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.
djinn 2008.1.18. Uploaded by Lennart Augustsson. djinn: Generate Haskell code from a type.
Etherbunny 0.3. Uploaded by Nicholas Burlett. Etherbunny: A network analysis toolkit for Haskell.
regexpr 0.2.0. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.
RJson 0.1. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..
RJson 0.1. Uploaded by Alex Drummond. RJson: A reflective JSON serializer/parser..
regexpr 0.1.7. Uploaded by Yoshikuni Jujo. regexpr: regular expression like Perl/Ruby in Haskell.
reactive 0.2. Uploaded by Conal Elliott. reactive: Simple foundation for functional reactive programming.
srcinst 0.8.10. Uploaded by John Goerzen. srcinst: Build and install Debian packages completely from source.
dfsbuild 1.0.2. Uploaded by John Goerzen. dfsbuild: Build Debian From Scratch CD/DVD images.
darcs-buildpackage 0.5.12. Uploaded by John Goerzen. darcs-buildpackage: Tools to help manage Debian packages with Darcs.
anydbm 1.0.5. Uploaded by John Goerzen. anydbm: Interface for DBM-like database systems.
HDBC-sqlite3 184.108.40.206. Uploaded by John Goerzen. HDBC-sqlite3: Sqlite v3 driver for HDBC.
HDBC-postgresql 126.96.36.199. Uploaded by John Goerzen. HDBC-postgresql: PostgreSQL driver for HDBC.
HDBC-odbc 126.96.36.199. Uploaded by John Goerzen. HDBC-odbc: ODBC driver for HDBC.
magic 1.0.7. Uploaded by John Goerzen. magic: Interface to C file/magic library.
ListLike 1.0.1. Uploaded by John Goerzen. ListLike: Generic support for list-like structures.
LDAP 0.6.3. Uploaded by John Goerzen. LDAP: Haskell binding for C LDAP API.
hg-buildpackage 1.0.4. Uploaded by John Goerzen. hg-buildpackage: Tools to help manage Debian packages with Mercurial.
HDBC 1.1.4. Uploaded by John Goerzen. HDBC: Haskell Database Connectivity.
HSH 1.2.5. Uploaded by John Goerzen. HSH: Library to mix shell scripting with Haskell programs.
editline 0.1. Uploaded by Judah Jacobson. editline: Bindings to the editline library (libedit)..
pureMD5 0.1.1. Uploaded by Thomas DuBuisson. pureMD5: MD5 implementations that should become part of a ByteString Crypto package..
hmp3 1.4. Uploaded by Donald Stewart. hmp3: An ncurses mp3 player written in Haskell.
binary-strict 0.2.1. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.
GLFW 0.3. Uploaded by Paul Liu. GLFW: A binding for GLFW, An OpenGL Framework.
hbeat 0.1.1. Uploaded by Tim Docker. hbeat: A simple step sequencer GUI..
hackage2hwn 0.2.1. Uploaded by Donald Stewart. hackage2hwn: Convert hackage = Hackage RSS feeds to Haskell Weekly News format.
tagsoup 0.4. Uploaded by Neil Mitchell. tagsoup: Parsing and extracting information from (possibly malformed) HTML documents.
HaXml 1.19.2. Uploaded by Malcolm Wallace. HaXml: Utilities for manipulating XML documents.
Emping 0.3.1. Uploaded by Hans VanThiel. Emping: derives heuristic rules from nominal data.
hbeat 0.1. Uploaded by Tim Docker. hbeat: A simple step sequencer GUI..
Imlib 0.1.1. Uploaded by Cale Gibbard. Imlib: Added by CaleGibbard, Sun Jan 13 22:26:59 PST 2008..
pcre-light 0.2. Uploaded by Donald Stewart. pcre-light: A small, efficient and portable regex library for Perl 5 compatible regular expressions.
YamlReference 0.8. Uploaded by Oren BenKiki. YamlReference: YAML reference implementation.
ContArrow 0.0.4. Uploaded by Evgeny Jukov. ContArrow: Control.Arrow.Transformer.Cont.
ContArrow 0.0.3. Uploaded by Evgeny Jukov. ContArrow: Control.Arrow.Transformer.Cont.
mkcabal 0.4. Uploaded by Donald Stewart. mkcabal: Generate cabal files for a Haskell project.
pcre-light 0.1. Uploaded by Donald Stewart. pcre-light: A lightweight binding to PCRE.
YamlReference 0.7. Uploaded by Oren BenKiki. YamlReference: YAML reference implementation.
Crypto 4.1.0. Uploaded by Dominic Steinitz. Crypto: DES, Blowfish, AES, TEA, SHA1, MD5, RSA, BubbleBabble, Hexdump, Support for Word128, Word192 and Word256 and Beyond, PKCS5 Padding, Various Encryption Modes e.g. Cipher Block Chaining all in one package..
containers 0.1.0.1. Uploaded by Ross Paterson. containers: Assorted concrete container types.
ConfigFile 1.0.4. Uploaded by John Goerzen. ConfigFile: Configuration file reading & writing.
MissingH 1.0.0. Uploaded by John Goerzen. MissingH: Large utility library.
hslogger 1.0.4. Uploaded by John Goerzen. hslogger: Versatile logging framework.
hslogger 1.0.2. Uploaded by John Goerzen. hslogger: Versatile logging framework.
BerkeleyDB 0.3. Uploaded by John McCall. BerkeleyDB: Bindings for Berkeley DB v1.x.
BitSyntax 0.3.2. Uploaded by Adam Langley. BitSyntax: A module to aid in the (de)serialisation of binary data.
Hashell 0.15. Uploaded by Gwern Branwen. Hashell: Simple shell written in Haskell.
binary-strict 0.2. Uploaded by Adam Langley. binary-strict: Binary deserialisation using strict ByteStrings.
Shu-thing 1.1. Uploaded by Gwern Branwen. Shu-thing: A vector shooter game.
zlib 0.4.0.2. Uploaded by Duncan Coutts. zlib: Compression and decompression in the gzip and zlib formats.
i18n 0.2. Uploaded by Eugene Grigoriev. i18n: Internationalization for Haskell.
pandoc 0.46. Uploaded by John MacFarlane. pandoc: Conversion between markup formats.
hscolour 1.9. Uploaded by Malcolm Wallace. hscolour: Colourise Haskell code..
regex-pcre 0.94.1. Uploaded by ChrisKuklewicz. regex-pcre: Replaces/Enhances Text.Regex.
regex-posix 0.93.1. Uploaded by Chris Kuklewicz. regex-posix: Replaces/Enhances Text.Regex.
regex-base 0.93.1. Uploaded by Chris Kuklewicz. regex-base: Replaces/Enhances Text.Regex.
regex-compat 0.91. Uploaded by Chris Kuklewicz. regex-compat: Replaces/Enhances Text.Regex.
haddock 126.96.36.199. Uploaded by David Waern. haddock: Added by DavidWaern
Blog noiseHaskell news from the blogosphere.
- Scala Buzzzzings
- Taxicab Numbers
- Tuppence Tour of Haskell Concurrency Constructs
- Power of Functional Programming, its Features and its Future
- Monads in Python (with nice syntax!)
- Monads in Ruby (with nice syntax!)
- The Marvels of Monads (in C#)
- Pointfree programming in OCaml
- HSOE Chapter 3
- Extra type safety using polymorphic types as first-level refinements
- Why you should use Haskell for your next domain specific language
- Record system headaches
- Programming Erlang
- Haskell syntax is not Java syntax; good or bad?
- Judging programming languages by the results
- One line binary reader in Haskell
- On the utility of functional programming
- The Rise Of Functional Programming: F#/Scala/Haskell and the failing of Lisp
- Seeqsuq: A Seeqpod URL Ripper (in Haskell)
- 2008 predictions
- The Haskell Program Coverage Toolkit (part 1)
- Haskell Code Coverage tool available
- A Little Lesson on Laziness and Unsafety
- Haskell's do syntax for python and ruby
- Error handling in Python: monads are too much for me
- Simple POSIX regular expression example
- Read the content of a file into a list of string
- How not to explain Haskell monads
- HStringTemplate: An Elegant, Functional, Nifty Templating Engine for Haskell.
- A (hopefully) painless introduction to monads
- Simple Type Inference in Haskell
- Quality assurance for Haskell code via code coverage
- Getting started with Yi, the haskell editor
- Haskell Impressions, Part I
- Software Transactional Memory for F#
- One or so word summary of the programming languages I work with
- HStringTemplate: Turtles all the way
- Scraping my boilerplate: Generics instead of Records
- Functional Programming is Hard
- Erik Meijer: Evaluating Functional Programming Language Purity :: Video
- Solving XKCD's Ghost problem in Haskell: First player wins
- Haskell Function calls and Parentheses
- an elementary proof of the undecidability of the halting problem
- Invasion of the multi-core machines
- Monads for Imperative Peeps
- Haskell Shuffling
- Notes on Haskell
- Functional Programming Languages
- Case Study: Using Haskell and HAppS for Openomy API v2.0
- A Haskell Hackathon (in Japanese)
- Control.Parallel.Strategies introduction
- 'I asked the manager if they were considering using such languages. He replied that they had actually considered using Haskell for some smaller projects'
- Solving IO Sequencing in Haskell with a Monad
- Haskell Music
- Matching checklists using Haskell
- State monads
- Haskell is a very expressive language
- Counting Infinity
- Haskell, del.icio.us, and JSON
- It's time for Haskell in the web browser
- OpenGL programming with Haskell
- unfolds in scala
- Haskell Snippet: looking at foldl (also a java version)
- MatLab: Why OCaml and Haskell are not ready for general scientists -- missing libraries
- Problems in Lisp: Historical relics, poor FFI, libraries, forks
- On blub
- Refining Pipelines
- Purely functional recursive types in Haskell and Python
- Counting matches in a list
- SPJ on .NET Rocks
- Hackage, cabal and the google charts api
- Haskell Rocks!
- How many functions are there from () to ()?
Quotes of the Week
- Peter: I hardly know Haskell, but I can already write some code much faster and easier than I could do in C/C++ (and I've been programming 2 decades in that language)
- Miguel Mitrofanov: Since NaN /= NaN, I think, we should decipher 'NaN' as 'Not a NaN'
- Achim Schneider: The essence of non-strictness, though, is another kind of story. Like a golem plowing half of the country until you remember that you placed him a bit absent-mindedly into your backyard and said 'plow', that still won't plow mountains. The essence of strictness is easy, though: get stuck on a stone, fall over and continue moving until you break.
- monochrom: OCaml tells you 'map f xs is bad because it takes O(n) space'. Haskell tells you 'map f xs' is good because it takes O(1) space
- ddarius: It says *right on the box* that it it's intended for *both* research and applications.
- Clifford Beshers: Why Haskell? Medical researchers announced today that MRI studies reveal that the structure of the human brain is significantly different in adolescence than adulthood.
- Larry O'Brien: I really had a hard time refactoring my Ruby into a packrat parser. This was due, in no small part, because of the difficulty in understanding the types being built-up in the data structure. The paper, in explicitly-typed Haskell: clear as a bell. My code's behavior on unit tests: virtually indistinguishable from random.
- SuperGrade: Haskell kind of herds you into functional programming. There are advantages to this manner of coding, and I'm getting to thinking you should attempt code this way almost all of the time, regardless of language.
- Berlin Brown: Haskell is readable, fast, and expressive. I like it.
- Yaakov Nemoy: Changing the type of a function in Python will lead to strange runtime errors that take some work to debug, whereas, when I tinker with a program in Haskell, I already know it will work once it compiles.
- Michael Reid: Learning Haskell has completely reversed my feeling that static typing is an old outdated idea. The power of Haskell's type system makes it feel like you are programming in a dynamic language to some degree, yet all of it is type-checked, and that is just *really* cool.
- weavejester: I've come across many parser generators that are a dream to work with in comparison to lex and yacc. The best one I've found so far is Haskell's Parsec.
- David Roundy: What's the good of having a haskell-programming computational linguist on board if we can't get static compile-time guarantees of grammatical correctness?
- Bulat Ziganshin: When FP just pass all the functions and data required for specialization of generic algorithm, OOP provides interfaces, virtual functions, anonymous classes, delegates and lots of other interesting ways to hide the fact of lack of first-class functions :)
- [Douglas] Adams: was interested in computing --- I think his reaction to being told about functional programming was to wonder what non-functional programming might be.
- ezekiel: I find Haskell to be like Lisp and APL and Python all put together in a way that leads me quickly to a solid result. Other languages work, but the road to the result is bumpier.
- AlanYx: I've found that Haskell's uber-strong, static type system does help me be productive, because it increases the class of bugs that can be found at compile time, forces thinking at a higher level, and can help avoid edits to existing code breaking things elsewhere in the code
- anonymous: Closures in today's world are a 'language geek' feature. Unless done extremely carefully and in a way that supports the various skill levels of developers, they end up being unusable and unsupportable by anything less than computer language savants. In their inherent obscurity and complexity, 'language geek' style closures are about as anti-Java as you can get.
- anonymous: I work in a Smalltalk shop, where we extend and maintain an application that has been around over a decade. During the maintenance part of our job, it would be really nice to have type declarations on variables. For maintenance, the more dependable information we have, the better! The fewer things that can escape as runtime exceptions, the better!
- consultant barbie: Languages are hard. Let's write web frameworks and go shopping!
About the Haskell Weekly News
New editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at galois.com. The darcs
repository is available at
darcs get http://code.haskell.org/~dons/code/hwn/
Haskell Weekly News: January 05, 2008
Welcome to issue 68 of HWN, a newsletter covering developments in the Haskell community.
This HWN features new releases of the GHC and nhc98 Haskell compilers, a pre-release of darcs 2.0, several new user groups formed, and of course, more than 100 updated and new libraries
GHC 6.8.2. The GHC Team announced the release of GHC 6.8.2, featuring optimisation improvements, improvements to ghci and fixes to standalone deriving.
nhc98 1.2 released. Malcolm Wallace announced the release of nhc98 1.2. 1.20 is a refreshed release with many of the current core library packages included, and a variety of small bugfixes since the last release. It successfully compiles and runs more programs from the nobench suite than jhc, hbc, Hugs, or yhc. It generates an interpreted bytecode that, on the whole runs faster than that generated by Hugs or yhc, and in many cases is also faster than ghci. Although nhc98 is written in Haskell, you don't need an existing Haskell compiler on your platform to build nhc98 - a C compiler will do. Hence, it is portable to almost any unix-like machine with a 32-bit compatibility mode. Many useful build tools come included: hmake (the inspiration for ghc --make), hi (interactive read-eval-print, like Hugs or ghci), cpphs (Haskell-aware replacement for cpp) and hsc2hs (preprocessor for FFI code)
darcs 2.0.0pre2. David Roundy announced the availability of the second prerelease of darcs two, darcs 2.0.0pre2. This release fixes several severe performance bugs that were present in the first prerelease. These issues were identified and fixed thanks to the helpful testing of Simon Marlow and Peter Rockai. We also added support for compilation under ghc 6.4, so even more users should be able to test this release.
The Monad.Reader Issue 9: SoC special. Wouter Swierstra announced a new issue of The Monad.Reader, a 'Summer of Code Special' - it consists of three articles from student participants of Google's Summer of Code, describing the projects they worked on.
What's happening with Haskell? The 13th HCAR. Andres Loeh announced the 13th edition of the Haskell Communities and Activities Report
Teach yourself gtk2hs in 21 hours. Hans van Thiel announced a Gtk2Hs basics tutorial, based on the Tony Gale and Ian Main GTK+2.0 tutorial, is now available for review and comment.
Minimalistic Haskell blog framework. Paul Brown announced a lightweight, experimental blog publishing application, perpubplat
atom. Tom Hawkins announced the release of atom 2007.12; atom is a domain-specific language embedded in Haskell for describing real-time control applications
HackageNew and updated libraries in the Hackage library database.
bytestring 0.9.0.4. Uploaded by DonaldStewart. bytestring: Fast, packed, strict and lazy byte arrays with a list interface.
uuagc 0.9.5. Uploaded by ArieMiddelkoop. uuagc: Attribute Grammar System of Universiteit Utrecht.
uulib 0.9.5. Uploaded by ArieMiddelkoop. uulib: Haskell Utrecht Tools Library.
llvm 0.0.2. Uploaded by BryanOSullivan. llvm: Bindings to the LLVM compiler toolkit.
HDBC-sqlite3 220.127.116.11. Uploaded by JohnGoerzen. HDBC-sqlite3: Sqlite v3 driver for HDBC.
HDBC-odbc 220.127.116.11. Uploaded by JohnGoerzen. HDBC-odbc: ODBC driver for HDBC.
dimensional 0.7.2. Uploaded by BjornBuckwalter. dimensional: Statically checked physical dimensions..
uulib 0.9.5. Uploaded by ArieMiddelkoop. uulib: Haskell Utrecht Tools Library.
hsc3 0.1. Uploaded by RohanDrape. hsc3: Haskell SuperCollider.
hosc 0.1. Uploaded by RohanDrape. hosc: Haskell Open Sound Control.
GLFW 0.2. Uploaded by PaulLiu. GLFW: A binding for GLFW, An OpenGL Framework.
control-timeout 0.1. Uploaded by AdamLangley. control-timeout: Timeout handling.
hiccup 0.35. Uploaded by KyleConsalus. hiccup: Relatively efficient Tcl interpreter with support for basic operations.
phooey 2.0. Uploaded by ConalElliott. phooey: Functional user interfaces.
reactive 0.0. Uploaded by ConalElliott. reactive: Simple foundation for functional reactive programming.
phooey 1.4. Uploaded by ConalElliott. phooey: Functional user interfaces.
hburg 1.1.1. Uploaded by IgorBohm. hburg: Haskell Bottom Up Rewrite Generator.
hinotify 0.2. Uploaded by LennartKolmodin. hinotify: Haskell binding to INotify.
cabal-rpm 0.3.3. Uploaded by BryanOSullivan. cabal-rpm: RPM package builder for Haskell Cabal source packages..
codec-libevent 0.1. Uploaded by AdamLangley. codec-libevent: Cross-platform structure serialisation.
irc 0.4. Uploaded by TrevorElliott. irc: A small library for parsing IRC messages..
dlist 0.4. Uploaded by DonaldStewart. dlist: Differences lists.
AutoForms 0.4.0. Uploaded by MadsLindstroem. AutoForms: GUI library based upon generic programming (SYB3).
bktrees 0.2.1. Uploaded by JosefSvenningsson. bktrees: A set data structure with approximate searching.
bktrees 0.2. Uploaded by JosefSvenningsson. bktrees: A set data structure with approximate searching.
binary-strict 0.1. Uploaded by AdamLangley. binary-strict: Binary deserialisation using strict ByteStrings.
haddock 0.9. Uploaded by SimonMarlow. haddock: Haddock is a documentation-generation tool for Haskell libraries.
bytestring-mmap 0.2.0. Uploaded by DonaldStewart. bytestring-mmap: mmap support for strict ByteStrings.
bytestring 0.9.0.3. Uploaded by DonaldStewart. bytestring: Fast, packed, strict and lazy byte arrays with a list interface.
hiccup 0.3. Uploaded by KyleConsalus. hiccup: Added by KyleConsalus, Wed Dec 19 17:00:42 PST 2007..
cedict 0.1.1. Uploaded by JasonDusek. cedict: Convenient Chinese character lookup..
TypeCompose 0.3. Uploaded by ConalElliott. TypeCompose: Type composition classes & instances.
bytestring-mmap 0.1.2. Uploaded by DonaldStewart. bytestring-mmap: mmap support for strict ByteStrings.
bytestring 0.9.0.2. Uploaded by DonaldStewart. bytestring: Fast, packed, strict and lazy byte arrays with a list interface.
bytestring-mmap 0.1.1. Uploaded by DonaldStewart. bytestring-mmap: mmap support for strict ByteStrings.
mkcabal 0.3. Uploaded by DonaldStewart. mkcabal: Generate cabal files for a Haskell project.
terminfo 0.1. Uploaded by Judah Jacobson. terminfo: Haskell bindings to the terminfo library..
Cabal 184.108.40.206. Uploaded by Duncan Coutts. Cabal: A framework for packaging Haskell software.
hxt 7.4. Uploaded by UweSchmidt. hxt: A collection of tools for processing XML with Haskell..
X11 1.4.1. Uploaded by Spencer Janssen. X11: A binding to the X11 graphics library.
dataenc 0.10.1. Uploaded by Magnus Therning. dataenc: Data encoding library currently providing Uuencode, Base64, Base64Url, Base32, Base32Hex, and Base16..
bytestringreadp 0.1. Uploaded by Gracjan Polak. bytestringreadp: A ReadP style parser library for ByteString.
encoding 0.3. Uploaded by HenningGuenther. encoding: A library for various character encodings.
hslua 0.2. Uploaded by Gracjan Polak. hslua: A Lua language interpreter embedding in Haskell.
xmonad-contrib 0.5. Uploaded by Spencer Janssen. xmonad-contrib: Third party extensions for xmonad.
xmonad 0.5. Uploaded by SpencerJanssen. xmonad: A tiling window manager.
pandoc 0.45. Uploaded by John MacFarlane. pandoc: Conversion between markup formats.
markov-chain 0.0.1. Uploaded by Henning Thielemann. markov-chain: Markov Chains for generating random sequences with a user definable behaviour..
parsedate 3000.0.0. Uploaded by Bjorn Bringert. parsedate: Data and time parsing for CalendarTime.
hackage2hwn 0.1. Uploaded by Don Stewart. hackage2hwn: Convert hackage = Hackage RSS feeds to Haskell Weekly News format.
hask-home 2007.12.6. Uploaded by BjornBringert. hask-home: Generate homepages for cabal packages.
hmarkup 3000.0.1. Uploaded by BjornBringert. hmarkup: Simple wikitext-like markup format implementation..
hspread 0.2. Uploaded by AndreaVezzosi. hspread: A client library for the spread toolkit.
pcap 0.4.2. Uploaded by BryanOSullivan. pcap: A system-independent interface for user-level packet capture.
hogg 0.3.0. Uploaded by ConradParker. hogg: Library and tools to manipulate the Ogg container format.
Finance-Quote-Yahoo 0.4.1. Uploaded by BradClawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com.
Monadius 0.9.20071204. Uploaded by GwernBranwen. Monadius: 2-D arcade scroller.
Shu-thing 1.0.20071203. Uploaded by GwernBranwen. Shu-thing: A vector shooter game.
hmatrix 0.1.1.0. Uploaded by AlbertoRuiz. hmatrix: Linear algebra and numerical computations.
HTTP 3001.0.3. Uploaded by BjornBringert. HTTP: Added by BjornBringert, Fri Nov 30 14:50:55 PST 2007..
rss 3000.0.1. Uploaded by BjornBringert. rss: A library for generating RSS 2.0 feeds..
haxr 3000.0.1. Uploaded by BjornBringert. haxr: XML-RPC client and server library..
fitsio 0.1. Uploaded by EricSessoms. fitsio: A library for reading and writing data files in the FITS data format..
YamlReference 0.6. Uploaded by Oren Ben Kiki. YamlReference, YAML reference implementation
LambdaShell 0.9.1. Uploaded by Robert Dockins. LambdaShell, simple shell for evaluating lambda expressions
Shellac 0.9.1. Uploaded by Robert Dockins. Shellac, a framework for creating shell envinronments
EdisonCore 184.108.40.206. Uploaded by Robert Dockins. EdisonCore, a library of efficent, purely-functional data structures (Core Implementations)
hmatrix 0.1.0.0. Uploaded by Alberto Ruiz. hmatrix, linear algebra and numerical computations
strict-concurrency 0.1. Uploaded by Don Stewart. strict-concurrency, strict concurrency abstractions
X11 1.4.0. Uploaded by Don Stewart. X11, binding to the X11 graphics library
safecopy 0.3. Uploaded by David Himmelstrup. safecopy, binary serialization with version control
HaXml 1.13.3. Uploaded by Malcolm Wallace. HaXml, utilities for manipulating XML documents
c2hs 0.15.1. Uploaded by Duncan Coutts. c2hs, C->Haskell Interface Generator
calc 0.1. Uploaded by Austin Seipp. calc, small compiler for arithmetic expressions.
miniplex 0.2.1. Uploaded by Lukas Mai. miniplex, simple 1-to-N interprocess communication
sat 1.1.1. Uploaded by Andrii Zvorygin. sat, CNF SATisfier
dimensional 0.7.1. Uploaded by Bjorn Buckwalter. dimensional, statically checked physical dimensions
hxt 7.4. Uploaded by Uwe Schmidt. hxt, collection of tools for processing XML with Haskell.
dlist 0.3.2. Uploaded by Don Stewart. dlist, difference lists. A list type supporting fast append.
mkcabal 0.2. Uploaded by Don Stewart. mkcabal, generate cabal files for a Haskell project
Chart 0.5. Uploaded by Tim Docker. Chart, a library for generating 2D Charts and Plots
MaybeT 0.1.1. Uploaded by Don Stewart. MaybeT, MaybeT monad transformer
regex-pcre 0.93. Uploaded by Chris Kuklewicz. regex-pcre, replaces Text.Regex
fixpoint 0.1. Uploaded by Roman Leshchinskiy. fixpoint, data types as fixpoints
ChasingBottoms 1.2.2. Uploaded by Nils Anders Danielsson. ChasingBottoms, support for testing partial and infinite values
GrowlNotify 0.3. Uploaded by Nicholas Burlett. GrowlNotify, notification utility for Growl
pcap 0.4.1. Uploaded by Bryan OSullivan. pcap, a system-independent interface for user-level packet capture
bencode 0.3. Uploaded by David Himmelstrup. bencode, parser and printer for bencoded data.
stream-fusion 0.1.1. Uploaded by Don Stewart. stream-fusion, provides the standard Haskell list library reimplemented to allow stream fusion. This should in general provide faster list operations, and faster code for list-heavy programs.
HTTP 3001.0.2. Uploaded by Bjorn Bringert. HTTP, library for client-side HTTP
X11-xft 0.2. Uploaded by Clemens Fruhwirth. X11-xft, bindings to the Xft, X Free Type interface library, and some Xrender parts
GrowlNotify 0.1. Uploaded by Nicholas Burlett. GrowlNotify, notification utility for Growl.
HsHaruPDF 0.0.0. Uploaded by Audrey Tang. HsHaruPDF, Haskell binding to libharu
unicode-normalization 0.1. Uploaded by Reinier Lamers. unicode-normalization, Unicode normalization using the ICU library
uniplate 1.0.1. Uploaded by Neil Mitchell. uniplate, uniform type generic traversals
lax-0.0.0. Uploaded by Wolfgang Jeltsch. lax, Lax arrows are variants of other arrows which are ?less strict? than the original arrows. They can be used, for example, to produce I/O fixpoints in situations where fixIO would fail.
fastcgi 3001.0.1. Uploaded by Bjorn Bringert. fastcgi, a Haskell library for writing FastCGI programs
Conference roundupNew user groups
Prototyping. Peter Verswyvelen announced a job using Haskell for prototyping computer animation and games
Blog noiseHaskell news from the blogosphere.
- Small shots of lambda calculus
- Pattern Matching in Ruby
- Haskell 'words' and Perl 'split'
- Word numbers, Part 4: Sort the words, sum the numbers
- Improve Your C#! Borrow from F#...
- Sun battling Microsoft (over F#?)
- zip in F# and Haskell
- Random numbers in Haskell
- A survey of Haskell unicode support
- Using Haskell for scripting tasks
- Princeton lost the DARPA Grand Challenge because of a C# memory leak
- Laziness in C#/LINQ
- Getting functional programming: currying
- The magic foldr
- Nested Parallel List Comprehensions
- FFI in Haskell
- Broadening ones horizons
- Monad Wars - 1: the Prompt
- Monad Wars - 2: the command line
- Holy Shmoly, GHC Haskell 6.8 smokes Python and Ruby away!
- Use those extra cores and beat C today! (Parallel Haskell redux)
- Parallelizing Haskell
- Python, Haskell, Ruby Smackdown
- Legitimate uses of micro-benchmarks: parameter passing and function call costs
- Holy Shmoly, GHC does some magic all by itself!
- PARE - PARallel Execution in Erlang - a response to Haskell
- Haskell design patterns are (probably) needed
- Deriving a Virtual Machine
- Games, cores, and functional languages
- Structure of a functional Java, er, method
- Current Fixation: Haskell
- Multicores, F# and SPJ: leading people to Haskell
- The IO Monad for People who Simply Don't Care
- Why I chose to learn Haskell
- Some Playing with Derivatives
- Solve Ball Clock Puzzle in Python and Haskell
- Back to functional languages... at least for a while?
- Overloading Semicolon, or, monads from 10,000 Feet
- Getting started with Haskell
- Arrows first encounter
- Arithmetic for lists
- Functional Programming on .NET - Part 1
- N-Queens in Haskell
- N-Queens in the writer monad
- Unit testing in Haskell
- Calculating the reflect-rotate-translate normal form for an isometry of the plane in Haskell, and verifying it with QuickCheck
- Visualizing 2D convex hull using Gtk and OpenGL in Haskell
- Hugs for the Nintendo DS
- Comparative terseness of Perl and Haskell
- Note on point-free programming style
- Haskell Fibonacci Revisited
- PXSL Tools 1.0: Your ticket out of XML Hell
- Haskell is kind of cool
- Learning Haskell with ProjectEuler
- Infinite lazy Knuth-Bendix completion for monoids in Haskell
- Hugs for the Nintendo DS
- My Type of Language...
- Catching pods with hpodder
- Hamming's problem
- Sharper function operators
- Xiangqiboard: play Xiangqi against a computer opponent
- Haskell is kind of cool
- FParsec - A Parser Combinator Library for F#
- RSA-Haskell
- LLVM bindings for Haskell
- perpubplat 0.9 - You're Looking at It: blog framework for Haskell
- The point of pointfree
- qtHaskell
- Web Objects and the underappreciated recursive do
- Equality operators in PHP and Haskell
- Pushing Haskell's type system to the limits: A reflective JSON serializer
- A Wake Up Call for the Logic Programming Community
- Design your functions for partial application
- Taxicab Numbers
- Composing Contracts
- HTTP content-type comparison at the type level
- Haskell-Join-Rules
- Exploring JPEG
- What's interesting to me about SquirrelMail attack
- Haskell and F#: Language Design
- An example of Haskell's beauty
- My resolve to learn Haskell has become stronger after having watched 'A Taste of Haskell'
- Emacs love w/ Haskell
- Finding my way
- Why not Scala?
- A Different Kind of Obscurity
- Languages that save you some typing
Quotes of the Week
- Conal: For me, the heart of functional programming is exactly this separation between model and presentation. The former is naturally functional and compositional, while the latter is often imperative/sequential and not-so-compositional. IO belongs with the latter.
- ddarius: has programmed too much in Haskell. He now produces code that -compiles- and works the first time
- disspy: If all you know is C, everything begins to look like a segmentation fault.
- markedtrees: (On the city of Haskell) Ah yes, Haskell. Where all the types are strong, all the men carry arrows, and all the children are above average.
- ola-bini: Haskell's type system is really nice, for example, but OCaml's really feels like half of it exists just to cover up holes in the other half, I'm half way into Erlang, but for several reasons the language feels very primitive.
- so1i.warazd: I'm more and more comfortable spending time with Haskell these days. Haskell may not be the next thing, but whatever the next big thing is, it's probably going to have Haskelly fingerprints all over it?..
- sylvan: think that the perceived difficulty in using purely functional programming is probably a bit exaggerated these days, as all it means is 'we're explicit about where side effects occur'
- falvo: I really wish that someone would come up with a type-safe replacement for the likes of Python. Oh, wait, it's called Haskell! Unfortunately, I'm forbidden from using Haskell at work. Sigh
- Tyler Spaulding: eventually even 'simple' programs will nned multiple threads. Does that mean developers will suddenly flock to Haskell? Again, no. Language designers are well aware of the situation. Sun and Microsoft are constantly working on improving the Java and .NET frameworks. And by the time the average programmer needs it, both will have plenty of support for easy threading
- ricky clarkson: Haskell is full of Aha and Hah moments for me
- five9a2: Concurrency aside, I find it common to write Haskell code that is as fast as C. It is true that for most things, the C can be tweaked to go a bit faster, but that tweaking needs to be done on a case-by-case basis. In Haskell, it is easier to compose optimized components. Better algorithms beat an optimized compiler any day and using the best algorithms everywhere in C code tends to be painful, error-prone, and usually disparaged as premature optimization.
- Jeff Moser: It's been this fear of skills rot that has pushed me to look into Lisp, Haskell, F#, Erlang, and other languages to avoid The Blub Paradox.
- NFJS 2008 predictions: If you've never programmed in Haskell, now's a good time to learn, because those concepts and syntax are fast making their way towards you...
- The honey monster: With the advent of multi-core CPUs and the promise of many core processors in the near future it occurrs to me that my interest in functional programming languages could not of happened at a more opportune time. It is not that imperative programming languages are not as capable, merely that functional programming languages seem to be more natural fit
About the Haskell Weekly News
New editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at galois.com. The darcs
repository is available at
darcs get http://code.haskell.org/~dons/code/hwn/
Haskell Weekly News: November 11, 2007
Welcome to issue 67 of HWN, a newsletter covering developments in the Haskell community.
This week sees the release of GHC 6.8.1, to rave reviews. There have been many reports of large performance improvements for Haskell programs, from small to large production systems. Congratulations to the GHC team for such a great release!
GHC 6.8.1. Ian Lynagh announced the release of GHC 6.8.1, a new major release of GHC. There have been a number of significant changes since the last major release, including: Haskell Program Coverage support, the GHCi debugger, pointer tagging in the runtime (with up to 10-15% speedups), constructor specialisation, improved optimisations and much more! The full release notes are available.
Gtk2Hs 0.9.12.1. Duncan Coutts announced version 0.9.12.1 of gtk2hs is now available. gtk2hs is the standard graphics library for Haskell.
Lazy SmallCheck 0.1. Matthew Naylor announced Lazy SmallCheck 0.1, a library for exhaustive, demand-driven testing of Haskell programs.
HDBC 1.1.3. John Goerzen announced new releases of HDBC, the Haskell database connectivity kit, and its associated backends (for sqlite3, postgresql, odbc).
xmobar. Andrea Rossato announced the release of Xmobar-0.8, a minimalistic, text based, status bar. It was specifically designed to work with the XMonad Window Manager.
Flymake Haskell. Daisuke Ikegami announced flymake haskell, emacs bindings for interactive Haskell editing.
network bytestring. Johan Tibbel announced, strict ByteString versions of the recv/send family of functions for efficient network IO.
ByteString search. Bryan O'Sullivan announced a cabalised version of the fast Boyer-Moore and Knuth-Morris-Pratt string search code for ByteStrings
Generating free theorems. Janis Voigtlaender announced an improved version of the online and offline free theorems generator for Haskell
hslogger4j 0.1.1. Bjorn Buckwalter announced Hslogger4j, which provides handlers for hslogger (John Goerzen's Haskell logging framework) that are compatible with log4j's XMLLayout.
Infinity 0.3. Austin Seipp announced `infinity', an IRC bot in Haskell
hswm. Remi Turk announced the first and last release of hswm, a Haskell window manager.
HackageThis week's new libraries in the Hackage library database.
xmobar-0.8. Uploaded by Andrea Rossato. xmobar, a minimalistic text based status bar
hsSqlite3-0.0.4. Uploaded by Evgeny Jukov. hsSqlite3, bindings for Sqlite3
cabal-rpm-0.3.2. Uploaded by Bryan OSullivan. cabal-rpm turns Haskell Cabal source packages into source and binary RPM packages.
selenium-0.2.2. Uploaded by Aaron Tomb. selenium, Haskell bindings to communicate with a Selenium Remote Control server. This package makes it possible to use Haskell to write test scripts that exercise web applications through a web browser.
HPDF-1.3. Uploaded by alpheccar. HPDF. A PDF library with support for several pages, page transitions, outlines, annotations, compression, colors, shapes, patterns, jpegs, fonts, typesetting ...
FileManip-0.3.1. Uploaded by Bryan OSullivan. FileManip, a Haskell library for working with files and directories. Includes code for pattern matching, finding files, modifying file contents, and more.
stringsearch-0.2. Uploaded by Bryan OSullivan. stringsearch, fast search of ByteStrings.
nano-md5-0.1. Uploaded by Don Stewart. nano-md5, ByteString bindings to OpenSSL.
denominate-0.4.1. Uploaded by Calvin Smith. denominate provides a main program for performing bulk file and directory renaming, using a built-in filename converter or user-defined converters.
ContArrow 0.0.2. Uploaded by Evgeny Jukov. ContArrow, Control.Arrow.Transformer.Cont
state 0.0.2. Uploaded by Evgeny Jukov. state. State.
infinity 0.3. Uploaded by Austin Seipp. infinity, a tiny, pluggable irc bot.
unix-compat 0.1.2.1. Uploaded by Duncan Coutts. unix-compat, portable implementations of parts of the unix package.
Ranged-sets 0.1.1. Uploaded by Paul Johnson. Ranged-sets. A ranged set is an ordered list of ranges.
IFS 0.1.1. Uploaded by alpheccar. IFS, a library to describe IFS and generate PPM pictures from the descriptions
bktrees 0.1.3. Uploaded by Josef Svenningsson. bktrees. Burhard-Keller trees provide an implementation of sets which apart from the ordinary operations also has an approximate member search, allowing you to search for elements that are of a certain distance from the element you are searching for.
pqc 0.2. Uploaded by Don Stewart. pqc, a parallel batch driver for QuickCheck
strict 0.2. Uploaded by Don Stewart. strict, strict data types.
HsSVN 0.2. Uploaded by PHO. HsSVN, (Part of) Subversion binding for Haskell
HsHyperEstraier 0.2. Uploaded by PHO. HsHyperEstraier, a HyperEstraier binding for Haskell. HyperEstraier is an embeddable full text search engine which is supposed to be independent to any particular natural languages.
HsOpenSSL 0.3.1. Uploaded by PHO. HsOpenSSL, a (part of) OpenSSL binding for Haskell. It can generate RSA and DSA keys, read and write PEM files, generate message digests, sign and verify messages, encrypt and decrypt messages.
Finance-Quote-Yahoo 0.4. Uploaded by Brad Clawsie. Finance-Quote-Yahoo, obtain quote data from finance.yahoo.com
LRU 0.1.1. Uploaded by Adam Langley. LRU, an LRU data structure
base 3.0. Uploaded by Ross Paterson. base, the Prelude and its support libraries, and a large collection of useful libraries ranging from data structures to parsing combinators and debugging utilities.
regex-posix 0.72.0.2. Uploaded by Duncan Coutts. regex-posix, posix regex support.
xhtml 3000.0.2.1. Uploaded by Bjorn Bringert. xhtml, combinators for producing XHTML 1.0, including the Strict, Transitional and Frameset variants.
Win32 184.108.40.206. Uploaded by Esa Ilari Vuokko. Win32, a binding to part of the Win32 library
unix 188.8.131.52. Uploaded by Ross Paterson. unix, POSIX functionality
time 18.104.22.168. Uploaded by Ross Paterson. time, time handling.
template-haskell 22.214.171.124. Uploaded by Ross Paterson. template-haskell, support for manipulating Haskell syntax trees
stm 22.214.171.124. Uploaded by Ross Paterson. stm, software transational memory
regex-compat 0.71.0.1. Uploaded by Ross Paterson. regex-compat, backwards compatible regex support
regex-base 0.72.0.1. Uploaded by Ross Paterson. regex-base, regex support.
readline 220.127.116.11. Uploaded by Ross Paterson. readline, an interface to the GNU readline library
random 188.8.131.52. Uploaded by Ross Paterson. random, random number generation
QuickCheck 126.96.36.199. Uploaded by Ross Paterson. QuickCheck, automatic testing of Haskell programs
process 220.127.116.11. Uploaded by Ross Paterson. process, jobs and processes
pretty 126.96.36.199. Uploaded by Ross Paterson. pretty, pretty printing library.
parsec 188.8.131.52. Uploaded by Ross Paterson. parsec, monadic parser combinators.
parallel 220.127.116.11. Uploaded by Ross Paterson. parallel, support for parallel programming
packedstring 0.1.0.0. Uploaded by Ross Paterson. packedstring, packed strings
OpenGL 22.214.171.124. Uploaded by Ross Paterson. OpenGL, binding for the OpenGL graphics system
OpenAL 184.108.40.206. Uploaded by Ross Paterson. OpenAL, binding to the OpenAL cross-platform 3D audio API.
old-time 126.96.36.199. Uploaded by Ross Paterson. old-time, time library.
alex 2.2. Uploaded by Simon Marlow. alex is a tool for generating lexical analysers in Haskell
Cabal 188.8.131.52. Uploaded by Duncan Coutts. Cabal is the framework for packaging Haskell software
HaXml 1.19.1. Uploaded by Malcolm Wallace. HaXml, Utilities for manipulating XML documents
HDBC-odbc 18.104.22.168. Uploaded by John Goerzen. HDBC-odbc, ODBC driver for HDBC
HDBC-postgresql 184.108.40.206. Uploaded by John Goerzen. HDBC-postgresql is a PostgreSQL driver for HDBC
HDBC-sqlite3 22.214.171.124. Uploaded by John Goerzen. HDBC-sqlite3 is a Sqlite v3 driver for HDBC
HDBC 1.1.3. Uploaded by John Goerzen. HDBC is a Haskell Database library
X11 1.3.0. Uploaded by Don Stewart. X11 is a library of bindings to the X11 libraries and server
HsOpenSSL 0.3. Uploaded by Masatake Daimon. HsOpenSSL, (Part of) OpenSSL binding for Haskell
Imlib 0.1. Uploaded by Cale Gibbard. Imlib, Haskell binding for Imlib 2
Stream 0.2.2. Uploaded by Wouter Swierstra. Stream, a library for manipulating infinite lists.
sat 1.0. Uploaded by AndriiZvorygin. sat, CNF SATisfier
torrent 2007.10.27. Uploaded by David Himmelstrup. torrent, BitTorrent file parser
bencode 0.2. Uploaded by David Himmelstrup. bencode, Parser and printer for bencoded data.
SDL 0.5.1. Uploaded by David Himmelstrup. SDL, binding to libSDL
NGrams 1.0. Uploaded by Justin Bailey. ngrams, Simple application for calculating n-grams using Google
Bootstrapping Haskell. Andrew Copping wondered how the first Haskell compilers were bootstrapped, leading to some interesting historical details.
GHC 6.8 performance. Dan Piponi asked about Haskell performance for low level array manipulation, with some excellent speedups produced by GHC 6.8
Software Development Engineer at MSR. Don Syme announced that the F Sharp team is hiring! We have two positions open right now. The first is a software development engineer specializing in Visual Studio and libraries. The second Post Calendar is a software development engineer
PhD position at Chalmers. John Hughes announced that the Functional Programming group at Chalmers is seeking to recruit a PhD student to work on domain-specific languages embedded in Haskell for hardware design, and for programming graphics processors. PhD positions in Sweden are 'real jobs', paying a respectable salary for up to five years.
Blog noiseHaskell news from the blogosphere.
- Scala for bioinformatics
- I like Haskell a lot
- Haskell history
- Continuation Passing Style for Monads
- Abuse: Is it ruby? Is it Haskell? It's both!
- Learning Haskell?
- For loops in Haskell
- A Simple Programming Puzzle Seen Through Three Differenent Lenses
- Scala Makes Me Think
- Haskell Substring Function
- Multicore Programming and Automatic Parallelisation
- Spinoza SOS in Haskell
- Why not just use Haskell?
- Chain delegates (in Haskell)
- Parser Combinators in C
- Will hybrid languages like D render functional languages like Haskell, OCaml and Common Lisp irrelevant?
- Category Theory for the Java Programmer
- Benchmarking ray tracing, Haskell vs. OCaml
- Some lambda calculus examples
- Beautiful timetables
- References, Arrows and Categories
- Anamorphisms in Ruby
- Type metaprogramming in Haskell and C++
- A Small Combinatorial Library
Quotes of the Week
- faxathisia: Omg! I spent 2 days writing this code and it's worked the first time I run it. Only possible with Haskell :D
- anonymous: The thing is Haskell isn't suited for young people, whereas the OBJECT model of C++ is
- sethg: I feel like I still dont understand comonads
- fnord123: Haskell mainly helps with my C++ template coding when I'm doing money oriented programming
- Tac-Tics: I get the feeling if all I ever use is the IO monad, someone here will shower me in holy monad fire and cleanse the evil from me.... leaving burn marks all over
- Anton van Straaten: there's a new movement towards 'functional eating' which involves using a knife and fork (think ML) or chopsticks (Haskell ;) instead of a chainsaw. Its proponents claim that this approach is far superior, but chainsaw fans are skeptical.
- SamB: what happens in the monad... stays in the monad...
- Brent Yorgey: Friends don't let friends write in COBOL.
- Bulat Ziganshin: It's a whole new era in low-level GHC programming
About the Haskell Weekly News
New editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at galois.com. The darcs
repository is available at
darcs get http://code.haskell.org/~dons/code/hwn/
Haskell Weekly News: October 25, 2007
Welcome to issue 66 of HWN, a newsletter covering developments in the Haskell community.
A huge month for the Haskell community, with the Haskell Workshop, ICFP and CUFP conferences, the second international Haskell Hackathon, and 63 libraries and tools uploaded to hackage! A round of applause to everyone involved!
HackageThis week's new libraries in the Hackage library database.
SDL 0.5.0. Uploaded by Lemmih. SDL, a binding to libSDL.
Stream 0.2.1. Uploaded by Wouter Swierstra. Stream, functions, analogous to those from Data.List, to create and manipulate infinite lists
bktrees 0.1.1. Uploaded by Josef Svenningsson. bktrees, Burhard-Keller trees provide an implementation of sets which apart from the ordinary operations also has an approximate member search, allowing you to search for elements that are of a certain distance from the element you are searching for.
happy 1.17. Uploaded by Simon Marlow. happy, a parser generator for Haskell.
HaXml 1.19. Uploaded by Malcolm Wallace. HaXml, utilities for parsing, filtering, transforming and generating XML documents.
polyparse 1.1. Uploaded by Malcolm Wallace. polyparse, A variety of alternative parser combinator libraries, including the original HuttonMeijer set. The Poly sets have features like good error reporting, arbitrary token type, running state, lazy parsing, and so on. Finally, Text.Parse is a proposed replacement for the standard Read class, for better deserialisation of Haskell values from Strings.
bzlib 0.4.0.1 . Uploaded by Duncan Coutts. bzlib, compression and decompression in the bzip2 format.
zlib 0.4.0.1. Uploaded by Duncan Coutts. zlib, compression and decompression in the gzip and zlib formats
tar 0.1.1.1. Uploaded by Bjorn Bringert. tar, a library for reading and writing TAR archives.
unix-compat 0.1.2.0. Uploaded by Bjorn Bringert. unix-compat, provides portable implementations of parts of the unix package. This package re-exports the unix package when available. When it isn't available, portable implementations are used.
oeis 0.1. Uploaded by Brent Yorgey. oeis, Haskell interface to the Online Encyclopedia of Integer Sequences.
dataenc 0.9. Uploaded by Magnus Therning. dataenc, Data encoding library currently providing Uuencode, Base64, Base64Url, Base32, Base32Hex, and Base16.
cabal-setup 1.2.1. Uploaded by Simon Marlow. cabal-setup, cabal-setup is a user interface to Cabal. It provides the basic commands for configuring, building, and installing Cabal packages.
cabal-install 0.4.0. Uploaded by firstname.lastname@example.com. cabal-install, apt-get like tool for Haskell. The 'cabal' command-line program simplifies the process of managing Haskell software by automating the fetching, configuration, compilation and installation of Haskell libraries and programs.
HTTP 3001.0.0. Uploaded by Bjorn Bringert. HTTP, A library for client-side HTTP.
iconv 0.4. Uploaded by Duncan Coutts. iconv, provides an interface to the POSIX iconv library functions for string encoding conversion.
binary 0.4.1. Uploaded by the Binary Strike Team. binary, efficient, pure binary serialisation using lazy ByteStrings. Haskell values may be encoded to and form binary formats, written to disk as binary, or sent over the network. Serialisation speeds of over 1 G/sec have been observed, so this library should be suitable for high performance scenarios.
Cabal 1.2.1. Uploaded by firstname.lastname@example.com. Cabal: the Haskell Common Architecture for Building Applications and libraries = Libraries: a framework defining a common interface for authors to more easily build their Haskell applications in a portable way. The Haskell Cabal is meant to be a part of a larger infrastructure for distributing, organizing, and cataloging Haskell libraries and tools.
bytestring 0.9. Uploaded by Don Stewart and Duncan Coutts. bytestring. fast, packed, strict and lazy byte arrays with a list interface.
arrows 0.3. Uploaded by Ross Paterson. arrows, Several classes that extend the Arrow class, and some transformers that implement or lift these classes.
sat 1.0. Uploaded by Andrii Zvorygin. sat, CNF(Clausal Normal Form) SATisfiability Solver and Generator.
pcap 0.4. Uploaded by Bryan O'Sullivan. pcap, system-independent interface for user-level packet capture
hslogger4j 0.1.1. Uploaded by Bjorn Buckwalter. hslogger4j, provides handlers for hslogger (John Goerzen's Haskell logging library) that are compatible with log4j's XMLLayout. In particular log messages created by the handlers can be published directly to the GUI-based log viewer Chainsaw v2.
IndentParser 0.2.1. Uploaded by Piyush P Kurur. IndentParser, provides two modules, Text.ParserCombinators.Parsec.IndentParser and Text.ParserCombinators.Parsec.IndentToken, for constructing parser combinators for indentation based syntactic structures. The former exports the basic indentation parser combinators and the later together with Text.ParserCombinators.Parsec.Language and Text.ParserCombinators.Parsec.Token can be used to define tokenisers for programming languages.
lazysmallcheck 0.1. Uploaded by Matthew Naylor and Fredrik Lindblad. lazysmallcheck, a library for exhaustive, demand-driven testing of Haskell programs. It is based on the idea that if a property holds for a partially-defined input then it must also hold for all fully-defined instantiations of the that input. Compared to `eager' input generation as in SmallCheck, Lazy SmallCheck may require significantly fewer test-cases to verify a property for all inputs up to a given depth.
HPDF 1.2. Uploaded by alpheccar. HPDF, A PDF library with support for several pages, page transitions, outlines, annotations, compression, colors, shapes, patterns, jpegs, fonts, typesetting ...
xmonad. Uploaded by Spencer Janssen and Don Stewart. xmonad, xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use. All features of the window manager are accessible from the keyboard: a mouse is strictly optional. xmonad is written and extensible in Haskell. Custom layout algorithms, and other extensions, may be written by the user in config files. Layouts are applied dynamically, and different layouts may be used on each workspace. Xinerama is fully supported, allowing windows to be tiled on several screens.
HCL 1.2. Uploaded by Justin Bailey. HCL, provides a set of functions for building simple command-line interfaces. It allows interfaces which collect values (such as Integers, Dates, or other structured values), build lists of values, and use simple menus. It is not intended to build complex interfaces with full cursor control. It is oriented towards line-based interfaces.
safecopy 0.2. Uploaded by David Himmelstrup. safecopy, an extension to Data.Binary with built-in version control.
selenium 0.2.1. Uploaded by Aaron Tomb. selenium, Haskell bindings to communicate with a Selenium Remote Control server. This package makes it possible to use Haskell to write test scripts that exercise web applications through a web browser.
HsOpenSSL 0.2. Uploaded by PHO. HsOpenSSL, a (part of) OpenSSL binding for Haskell. It can generate RSA and DSA keys, read and write PEM files, generate message digests, sign and verify messages, encrypt and decrypt messages.
X11-extras 0.4. Uploaded by Spencer Janssen. X11-extras, missing bindings to the X11 graphics library.
X11-1.2.3. Uploaded by Don Stewart. X11, a Haskell binding to the X11 graphics library.
flow2dot-0.2. Uploaded by Dmitry Astapov. flow2dot, generates sequence diagrams from textual descriptions with help of Graphviz graph drawing tool.
hsSqlite3-0.0.1. Uploaded by Evgeny Jukov. hsSqlite, Bindings for Sqlite3
X11-xft-0.1. Uploaded by Clemens Fruhwirth. X11-xft, Bindings to the Xft, X Free Type interface library, and some Xrender parts.
metaplug-0.1.1. Uploaded by Austin Seipp. metaplug, a ghc-api wrapper, designed to make the api more transparent across releases and offer eval and plugin esque facilities in the form of a simple, easy to modify library.
dimensional. Uploaded by Bjorn Buckwalter. dimensional, a library providing data types for performing arithmetic with physical quantities and units. Information about the physical dimensions of the quantities and units is embedded in their types and the validity of operations is verified by the type checker at compile time. The boxing and unboxing of numerical values as quantities is done by multiplication and division with units. The library is designed to, as far as is practical, enforce/encourage best practices of unit usage.
ProbabilityMonads. Uploaded by Eric Kidd. ProbabilityMonads, tools for random sampling, explicit enumeration of possible outcomes, and applying Bayes' rule. Highly experimental, and subject to change. In particular, the Data.Probability API is rather poor and could stand an overhaul.
MonadRandom. Uploaded by Eric Kidd . MonadRandom, support for computations which consume random values.
MaybeT. Uploaded by Eric Kidd. MaybeT, Support for computations with failures.
network-bytestring. Uploaded by Johan Tibell. network-bytestring, Faster and more memory efficient low-level socket functions using Data.ByteStrings instead of Strings.
irc. Uploaded by Trevor Elliott. irc, a set of combinators and types for parsing IRC messages.
clevercss. Uploaded by Georg Brandl. clevercss, a CSS preprocessing library that allows defining variables and nesting selectors so that you don't need to Repeat Yourself.
HsHyperEstraier. Uploaded by PHO. HsHyperEstraier, a HyperEstraier binding for Haskell. HyperEstraier is an embeddable full text search engine which is supposed to be independent to any particular natural languages.
libmpd. Uploaded by Ben Sinclair. libmpd, client library for MPD, the Music Player Daemon.
hS3. Uploaded by Greg Heartsfield. hS3, provides an interface to Amazon's Simple Storage Service (S3), allowing Haskell developers to reliably store and retrieve arbitrary amounts of data from anywhere on the Internet.
infinity. Uploaded by Austin Seipp. infinity, tiny IRC bot, extendable through plugins written in haskell
WURFL. Uploaded by alpheccar. WURFL, support for the WURLF file format
hburg. Uploaded by Igor Boehm. hburg, a program that generates tree parsers for cost-augmented tree grammars. It is useful for writing code generators for compilers. Given a mapping of a tree structured intermediate representation onto target machine instructions, HBURG generates a code generator that can be plugged into the instruction selection phase of a compiler.
ipprint. Uploaded by Gleb Alexeyev. ipprint, tiny helper for pretty-printing values in ghci console
numbers. Uploaded by Lennart Augustsson. numbers, instances of the numerical classes for a variety of different numbers: (computable) real numbers, arbitrary precision fixed numbers, arbitrary precision floating point numbers, differentiable numbers, symbolic numbers, natural numbers, interval arithmetic.
numeric-quest. Uploaded by Henning Thielemann. numeric-quest, List based linear algebra, similtaneous linear equations, eigenvalues and eigenvectors, roots of polynomials, transcendent functions with arbitrary precision implemented by continued fractions, quantum operations, tensors
shell-pipe. Uploaded by Henning Thielemann. shell-pipe, shell scripting stuff.
hstats. Uploaded by Marshall Beddoe. hstats, library of commonly used statistical functions.
LibrariesThis week's proposals and extensions to the standard libraries.
- In base, for Data.Version, change the meaning of comparisons
- Add Compositor class as superclass of Arrow
Conference roundupHaskell papers presented at the Haskell Workshp, ICFP and CUFP, in Freiburg, Germany.
- Andy Gill and Colin Runciman. Haskell Program Coverage (pdf)
- Simon Marlow, José Iborra, Bernard Pope and Andy Gill. A Lightweight Interactive Debugger for Haskell (pdf)
- Wouter Swierstra and Thorsten Altenkirch. Beauty in the Beast: A Functional Semantics of the Awkward Squad (pdf)
- Matthew Naylor, Emil Axelsson and Colin Runciman. A Functional-Logic Library for Wired (acm.org)
- Neil Mitchell and Colin Runciman. Uniform Boilerplate and List Processing; Or: Scrap Your Scary Types (pdf)
- Philip Wadler and Simon Peyton Jones. Comprehensions with `Order by' and `Group by'
- Geoffrey Mainland. Why It's Nice to be Quoted: Quasiquoting for Haskell
- Louis-Julien Guillemette and Stefan Monnier. A Type-Preserving Closure Conversion in Haskell (pdf)
- Demo 1: George Giorgidze and Henrik Nilsson. Programming Modular Synthesizer in Haskell (.mov)
- Demo 2: Martin Grabmüller and Dirk Kleeblatt. Run-time Code Generation in Haskell (.mov)
- Joao Fernandes, Alberto Pardo and João Saraiva. A Shortcut Fusion Rule for Circular Program Calculation (pdf)
- Peng Li, Andrew Tolmach, Simon Marlow and Simon Peyton Jones. Lightweight concurrency primitives for GHC (pdf)
- Demo 3: Don Stewart XMonad (.mov)
- Videos of all the Haskell Workshop talks
- Selected videos from ICFP and IFL
Finance. An NYC finance company requires an expert level Haskell user; must be comfortable with monads, monad transformers, type level programming (i.e. MPTC, overlapping and undecidable instances), and lazy evaluation (i.e. know how to find and eliminate space leaks).
Web Developer. RedNucleus Ltd requires a highly motivated programmer for a full or part-time posititon developing social web applications. Initially you will develop and maintain applications using RubyOnRails or a similar framework, but there will be opportunities to explore new web programming paradigms with declarative languages. The successful application will have exposure to functional programming methodologies, e.g. in Haskell, Lisp or Erlang
Blog noiseHaskell news from the blogosphere.
- Strongly Specified Functions
- Amazon S3 binding
- Octane Mech, OpenGL Haskell based mech game; early code and some haskell notes
- Fast, parallel log file processing in Haskell
- Haskell in the Hallway: an interview with Simon Peyton Jones
- Agda Exercise: Sized Mergesort
- Agda Exercise: Proving that Mergesort Returns Ordered Lists
- Lazy functions in C# LlNQ
- Functional Javascript
- Seemingly impossible functional programs
- For most programmers learning Haskell will be no picnic : a tutorial
- Haskell in industry: a surprising encounter!
- Exhaustive search over infinite binary trees
- How to Install HAppS
- Simple Haskell Web Programming with HAppS
- Haskell Web Spider, Part 1: HaXML
- Haskell Web Spider, Part 2: HXT, or I Was Promised There Would Be No Side Effects
- In praise of implementation-defined languages
- Arboreal Isomorphisms from Nuclear Pennies
- Higher-dimensional enumeration
- Haskell and my preception of programming languages
- Monads in Scala
- Total stream processors and quantification over infinite number of infinite streams
- The xmonad experience
- Wiring Haskell into a FastCGI Web Server
- A Link-Resolving Library
- Immutable data structures are the way of the future in C#
- What do you get when you curry partial application?
- Universal Architecture
- lambdacats
- A venture into functional programming (by a Python programmer)
- Is Java Dying?
- Tracing your code... the dirty way!
- Using Emacs to insert SCC annotations in Haskell code
- Erlang and Haskell Books: First Impressions
- Update on F# and Haskell, especially monads
- Back from ICFP
- A Simple RPN Calculator in Haskell
- Another simple RPN calculator in Haskell
- A simple regex engine in Haskell
- The square of the Catalan sequence
- Haskell changing your thinking
- How I started off with Haskell and wound up with Lisp
- Phantom type problems
- My first trip to the phantom zone
- Writing Your Last For-Loop
- The Curry-Howard Correspondence in Haskell
- Tuppence Tour of Haskell Concurrency Constructs
- Is Haskell really expressive?
- A Quickstart to Haskell
- Respect C Programmers
- Building Functions from Functions, part 2: Function Composition
- On the Importance of Purity
- Functional programming - Back to the Roots
- Simpler, Easier! Or, how to write a simple dependent type checker
- Is Visual Basic 9 'Haskell for the Masses?'
Quotes of the Week
- As someone who has written production code in functional languages (Ive written Haskell for the U.S. Navy) and in other languages (Perl and Ruby for several startups), I have to say that Haskell enabled me to be way more productive than the untyped scripting languages. Ruby is fun, but Haskell lets me get the work done faster and better.
- Perhaps if C wants to be taken seriously it should provide portability, which has been present in Haskell since the beginning
- However, since starting learning Haskell I?ve had aha-moments that manifest themselves in a single line of code. This has never happened before. Ever!
- Cale: Inheritance? Inheritance is broken, anyway
- DRMacIver: I dread to think what category theory would look like after the software engineering world had got their grubby paws on it. Enterprise variant functors. Commutative UML diagrams.
- DukeDave: Haskell has the greatest unlearning curve
- Jon Harrop: As Haskell has shown, laziness cannot be implemented efficient at all.
- Logan Capaldo: All I want for christmas is monad comprehensions
- Olathe: We can't be totally sure, though. There might be some value of 1 that wasn't checked.
- Pseudonym: Smart programmers naturally write monadic code, even if they don't realise it.
- augustss: Haskell already has enterprise monads; there is a fail method.
- bitwize: The combinator known as compose; Makes me extremely morose; The full stop is better, than writing in letters; Which makes it extremely verbose
- glguy: map became not overloaded in the great polymorphic scare of haskell 98
- mauke: haskell software should move from alpha to beta to eta, then lambda
- pl0nk: I wonder what SPJ sees when he closes his eyes before answering a question.
About the Haskell Weekly News
New editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at galois.com. The darcs
repository is available at
darcs get http://www.cse.unsw.edu.au/~dons/code/hwn
Haskell Weekly News: September 23, 2007
Welcome to issue 65 of HWN, a newsletter covering developments in the Haskell community.
This episode comes to you live from Portland, Oregon, where the HWN automaton now lives, running on a virtual host at Galois, Inc.
Cabal 1.2.0 released. Thomas Schilling announced that Cabal version 1.2.0 is available. The major new feature in this release is support for Cabal configurations. This allows package authors to more easily adopt their package descriptions to different system parameters such as operating system, architecture, or compiler. In addition, some optional features may be enabled or disabled explicitly by the package user.
SparseCheck. Matthew Naylor announced SparseCheck, a library for typed, depth-bounded logic programming in Haskell allowing convenient expression of test-data generators for properties with sparse domains. More information on the home page.
monadLib 3.3.0. Iavor Diatchki announced a new version of monadLib, adding the identiy transformer, and a family of deriving functions.
ListLlke. John Goerzen announced ListLike, a generic interface to the various list-like structures in Haskell.
HaL2: Meeting Haskell in Leipzig 2: videos. Klaus Meier announced that the videos and presentations of the talks given at HaL2 are now online.
The Monad.Reader: Issue 8. Wouter Swierstra announced that the latest issue of The Monad.Reader is now available. Issue 8 consists of the following two articles: Brent Yorgey on 'Generating Multiset Partitions' and Conrad Parker's 'Type-Level Instant Insanity'
Haskell mode plugins for Vim. Claus Reinke announced improved haskell mode plugins for vim.
hstats-0.1. Marshall Beddoe announced a statistical computing module for Haskell.
HIntegerByInt. Isaac Dupree announced a reimplementation, in Haskell, of the Integer type that Haskell provides in its Prelude. It is designed in mind of being actually usable as the implementation of that type, for compilers. It is also a module that exports a working Integer type. It is in terms of only basic Prelude functions, lists, and Int. It is NOT a purely inductive definition, because Int is much faster than a purely inductive definition would allow, and nevertheless often easier to come by (more portable, license-wise, size-wise, nuisance-wise...) than GMP or other C bignum libraries.
OzHaskell: Australian Haskell Programmers Group. Manuel Chakravarty started organising OzHaskell, an Australian Haskell user's group.
Israeli Haskell Programmers Group. B K also seeks to form an Israeli Haskell user's group
xmonad 0.3. Don Stewart announced the 0.3 release of xmonad. xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use.
HPDF 1.0. alpheccar announced version 1.0 of the HPDF library.
pcap: user-level network packet capture. Bryan O'Sullivan announced the release of pcap 0.3.1
Gtk2Hs Tutorial. Hans van Thiel announced a port of the GTK2 tutorial by Tony Gail and Ian Main to Haskell's gtk2hs.
An efficient lazy suffix tree library. Bryan O'Sullivan posted a suffix tree library to hackage. It implements Giegerich and Kurtz's lazy construction algorithm, with a few tweaks for better performance and resource usage.
Bay Area Functional Programmers. Keith Fahlgren announced the formation of the Bay Area Functional Programmers group. This group is for anyone using or interested in functional programming and functional programming languages, particularly strongly typed languages such as Haskell, OCaml and SML.
Haskell irc channel reaches 400 users. Don Stewart noticed that, five and a half years after its inception, under the guiding hand of Shae Erisson (aka shapr), the Haskell IRC channel on freenode has reached 400 users!
Guihaskell and PropLang 0.1. Asumu Takikawa announced the results of his Google Summer of Code project: Guihaskell, a graphical REPL using PropLang and work on PropLang, a GUI library built on Gtk2hs that allows for high level design.
HAppS-Data 0.9: XML, Pairs, HList, deriveAll. Alex Jacobson announced that the components of HAppS are being released as individual useful packages. HAppS-Data is the first in a series, and provides useful operations on XML data.
Introduction to proving Haskell code. Tim Newsham put together a small intro lesson on proving Haskell code using quickcheck, equational reasoning and Isabelle/HOL.
Very Fast Searching of ByteStrings. Chris Kuklewicz announced a Boyer-Moore algorithm implemented for strict and lazy bytestrings (and combinations thereof). It finds all the overlapping instances of the pattern inside the target.
Infinity 0.1. Austin Seipp announced Infinity v0.1. an IRC bot in the essence of lambdabot; that is, it should be extendable through plugins and plugins should be easy to write, modify and contribute.
Haskell'This section covers the Haskell' standardisation process.
LibrariesThis week's proposals and extensions to the standard libraries.
- Add &&& and *** to Data.Tuple
- Add System.Info.isWindows
- Make arrays safer
- GenT monad transformer variant of Gen
- Test.HUnit documentation
- Data.List.groupBy with non-transitive equality predicate
- Add dropped STM invariants functions
- Add Data.Eq.equating to match Data.Ord.comparing
- Fix abstract unix sockets
HackageThis week's new libraries in the Hackage library database.
numbers-2007.9.23. Lennart Augustsson. numbers: instances of the numerical classes for a variety of different numbers.
hmp3 1.3. Don Stewart. hmp3: An mp3 player with a curses frontend.
utf-string 0.2. Eric Mertens. utf8-string: A UTF8 layer for IO and Strings.
hstats 0.1. Marshall Beddoe. hstats: A library of commonly used statistical functions.
sparsecheck 0.2. Matthew Naylor. SparseCheck: a library for logic programming in Haskell that allows convenient description of test-data generators.
monadLib 3.3.0. Iavor Diatchki. monadLib: A collection of monad transformers.
ListLike 1.0.0. John Goerzen. ListLike: Generic support for list-like structures in Haskell.
cabal-test 0.1. David Himmelstrup. cabal-test: Cabal-test is a tool for testing cabal projects.
HPDF 1.1. alpheccar. HPDF: a PDF library.
hxt 7.3. Uwe Schmidt. hxt: The Haskell XML Toolbox.
irc 0.1. Trevor Elliott. irc: A small library for parsing IRC messages
hsdns 1.0. Peter Simons. hsdns: an asynchronous DNS resolver based on GNU ADNS.
streamproc 1.0. Peter Simons. streamproc: Stream Processer Arrow
hsemail 1.0. Peter Simons. hsemail: Parsers for the syntax defined in RFC2821 and 2822
funcmp 1.0. Peter Simons. funcmp: Functional MetaPost is a Haskell frontend to the MetaPost language
cabal-rpm 0.3.1. Bryan OSullivan. cabal-rpm: This package turns Haskell Cabal source packages into source and binary RPM packages.
Finance-Quote-Yahoo 0.3. Brad Clawsie. Finance-Quote-Yahoo: Obtain quote data from finance.yahoo.com
xmonad 0.3. Spencer Janssen. xmonad: a minimalist tiling window manager for X
hint 0.1. Daniel Gorin. hint: an interpreter monad for Haskell expressions based on ghc-api
ipprint 0.2. Gleb Alexeyev. ipprint: Tiny helper for pretty-printing values in ghci console
pandoc 0.44. John MacFarlane. pandoc: Conversion between markup formats
X11-extras 0.3. Spencer Janssen. X11-extras: Missing bindings to the X11 graphics library
dsp 0.2. Matthew Donadio. dsp: Digital Signal Processing, Fourier Transform, Filter design, Frequency estimation, Interpolation, Linear Algebra, Polynomials
c2hs 0.15.0. Manuel Chakravarty. c2hs: C->Haskell assists in the development of Haskell bindings to C libraries.
regex-base 0.92. Chris Kuklewicz. regex-base: Interface API for regex-posix,pcre,parsec,tdfa,dfa
soegtk 0.9.12.2. Duncan Coutts. soegtk: SOE api for gtk2hs
hsns 0.5.3. Austin Seipp. hsns: a miniature network sniffer
anydbm 1.0.4. John Goerzen. anydbm: Interface for DBM-like database systems
suffixtree 0.2.1. Bryan O'Sullivan suffixtree: An efficient, lazy suffix tree implementation.
A regressive view of support for imperative programming in Haskell. Paul Hudak sparked an interesting thread about the effect on the language of rich support for imperative programming.
Conference roundup
A top tier Investment bank is looking for a Haskell developer. Kyle McBeath announced that there is a available a permanent position in London, joining a cross asset team. You will be able to use Haskell commercially everyday, be generously compensated and be on the forefront of technology in banking. This is a great opportunity for PhD students or above with proven experience of Haskell programming.
Postdoctoral Fellowship in Functional Programming. Graham Hutton announced that applications are invited for a 3-year postdoctoral research fellowship in functional programming, to work on the EPSRC-funded project 'Reasoning About Exceptions and Interrupts'.
Blog noiseHaskell news from the blogosphere.
- Peano induction for binary numbers
- Simple proof of stack correctness for a tiny language (in Agda)
- Peano, episode 3
- Proving Haskell programs correct with QuickCheck and Isabelle/HOL
- Coq and simple group theory
- Coq and The Monad Laws: Introduction
- Coq and The Monad Laws: The First and Second
- Coq and The Monad Laws: The Third
- Revisiting board-building in chess
- Monads
- A Monad Tutorial for Ocaml
- Learning about (Computational) Monads
- I Wasn't Joking about One-Argument Haskell Functions
- Mapping Programming Language IRC Channels
- ASCII Rave in Haskell
- Today is similar to the programming languages situation of twenty years ago
- Haskell - the videos
- QuickCheck : Why Testing code should be Laissez-faire
- Rationals!
- Grass-Roots Functional Languages?
- Programming in C, ummm, Haskell
- And what about C arrays?
- Real Quicksort in Haskell
- Pointer tagging
- n00b Thoughts on Haskell
- 'The way forward involves functional programming'
- Does Syntax Matter?
- A bright future: security and modern type systems
- Making the transition from sequential to implicit parallel programming: How sequential languages obscure parallelism
- Software Transactional Memory - Making multithreading easier
- Roman Numerals in Haskell
- A history of monad tutorials
- Java Becoming Solution for Safety-Critical Applications
- Dunno (about STM)
- A thesis about language niches
- Thoughts on Scheme from a Haskeller
- Arrow Transformers for sample rate conversion
- Playing with Propositional Logic in Haskell
- Programmer productivity, feature set implementation, and runtime performance
- Anatomy of a new monad
- Welcome to Haskell for Maths Blog
- Monadic Parser Combinators using C# 3.0
- Blog Rewrite - I'm giving up
- Implementing The Kelly Criterion
- Universal Floating Point Errors
- Polyglot Programming - is it all Greek to you?
- Factor with a dash of curry
- How to learn to program
- I dated Haskell Curry's daughter
- Importance and Prominence and the wave: FP
- A Beautiful Regex Matcher... In Haskell
- San Francisco Bay Area FP Group
- AngloHaskell: The Aftermath
- Leibniz Equality, Decomposition, and Definability
- Word ladder in Haskell
- Existential Data Constructors in Haskell and Qi
- Sun slots transactional memory into Rock
- Haskell for pluggable apps, with the GHC API
- Yoda Speaks Haskell: A Tutorial
- Haskell Syntax Gem
- ClusterBy: a handy little function for the toolbox
- Squarefree numbers in Haskell
- Overloading functional references
- Haskell PDF 1.0
- More fun with randoms
- Learn Haskell in 5 minutes a day: lesson 1
- Destructive Quicksort in Haskell
- Tries and their derivatives
- Haskell HMAC
- Solving the word numbers problem: part 2
- Solving the word numbers problem: part 3
- Functional Forth
- F#'s monadic syntax
- The Actors Model and Haskell
- Haskell and the South African Computing Olympiad
- The Power of Folds
- Folding Incremental Averages in Haskell
- OpenGL tetris in Haskell
- Learn Haskell in 5 minutes a day: Lesson 1: Hello, World!
- Learn Haskell in 5 minutes a day: Lesson 2: Input and Output, Variable Binding, and more
- Learn Haskell in 5 minutes a day: Lesson 3: case
- Break a string into groups of characters
- A news aggregator
- Haskell elevator pitch
- Do Notation and Sequence Operator
- Part 1: How sequential languages obscure parallelism
- Part 2: How to achieve parallel execution
- Part 3: Explicit parallel programming with threads and locks
- Part 4: Explicit parallelism: message-passing programming
- Part 5: Implicit parallel programming: Declarative languages
- Part 6: So, why aren't we using functional languages yet?
- More articles about multicores and multiprocessors
Quotes of the Week
- nomeata: Haskell is basically Swiss: Small, Efficient, and it is fun to explore the higher parts.
- Tom Moertel: In the not-too-distant future, perhaps, we might look back in amazement at the days when important security properties were neither free nor guaranteed but expensive and uncertain, underwritten only by the heroic efforts of individual programmers, struggling against impossible odds to achieve inhuman perfection.
- Adam Turoff: In any case, Simon Peyton Jones is right -- the way forward involves functional programming, whether it means choosing a language like Haskell, or integrating ideas from Haskell into your language of choice.
- bootslack: Once, around the time of the discovery of fire, there was a large population of people that thought mastering fire would be too difficult so they didn't. The rest of us killed them, cooked them and ate them.
Code WatchNotable new features and bug fixes to the Haskell compilers.
Thu Sep 6 09:19:48 PDT 2007. Norman Ramsey . massive changes to add a 'zipper' representation of C--
Tue Aug 14 03:36:23 PDT 2007. Ben Lippmeier. Add graph coloring register allocator. Refactored linear allocator into separate liveness annotation and allocation stages. Added graph coloring allocator, use -fregs-graph to enable. New dump flags are -ddump-asm-native -- output of cmm -> native transform. -ddump-asm-liveness -- code annotated with register liveness info -ddump-asm-coalesce -- output of register move coalescing (this is a separate pass when using the coloring allocator) (this could change in the future) -ddump-asm-regalloc -- code after register allocation -ddump-asm-regalloc-stages -- blocks after each build/spill stage of coloring allocator -ddump-asm-conflicts -- a global register liveness graph in graphviz format The new register allocator will allocate some registers, but it's not quite ready for prime-time yet. The spill code generator needs some work.
About the Haskell Weekly News
New editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at cse.unsw.edu.au. The
darcs repository is available at
darcs get http://www.cse.unsw.edu.au/~dons/code/hwn
Haskell Weekly News: August 07, 2007
Welcome to issue 64 of HWN, a weekly newsletter covering developments in the Haskell community.
This issue marks the second anniversary of the Haskell (not quite) Weekly News. Thanks to the Haskell community for support, content and for reading over the last two years!
OSCON Haskell Tutorial. Simon Peyton-Jones Appeared at the O'Reilly Open Source Convention (OSCON) in Portland, delivering a range of talks, including A Taste of Haskell, A Keynote on Functional Languages, Nested Data Parallelism and Transactional Memory for Concurrent Programming. Videos are available for most of these talks: A Taste of Haskell: Part 1, A Taste of Haskell: Part 2, slides for A Taste of Haskell, Transactional Memory for Concurrent Programming and the NDP talk at the London Hugs meeting.
hpodder 1.0. John Goerzen announced version 1.0.0 of hpodder, the command-line podcatcher (podcast downloader) that just happens to be written in everyone's favorite language. You can get it here. Version 1.0.0 sports a new mechanism for detecting and disabling feeds or episodes that repeatedly result in errors, updates to the Sqlite database schema, and several bugfixes.
encoding-0.1. Henning Günther announced the release of 'encoding', a Haskell library to cope with many character encodings found on modern computers. At the moment it supports (much more is planned): ASCII, UTF-8, -16, -32, ISO 8859-* (alias latin-*), CP125* (windows codepages), KOI8-R, Bootstring (base for punycode)
Dimensional 0.6: Statically checked physical dimensions. Björn Buckwalter announced a library providing data types for performing arithmetic with physical quantities and units. Information about the physical dimensions of the quantities/units is embedded in their types and the validity of operations is verified by the type checker at compile time. The boxing and unboxing of numerical values as quantities is done by multiplication and division with units.
HackageThis week's new libraries in the Hackage library database.
hgal-1.0.1. Jean Philippe Bernardy. Computation automorphism group and canonical labeling of a graph
hpodder-1.0.3. John Goerzen. Podcast Aggregator (downloader)
dlist-0.3.1. Don Stewart. Differences lists: a list-like type supporting O(1) append
pointfree-1.0. Felix Martini. Stand-alone command-line version of the point-less plugin for lambdabot
encoding-0.1. Henning Guenther. A library for various character encodings
AppleScript-0.1.3. Wouter Swierstra. Call AppleScript from Haskell
SDL-ttf-0.4.0. David Himmelstrup. Binding to libSDL_ttf
Finance-Quote-Yahoo-0.2. Brad Clawsie. Obtain quote data from finance.yahoo.com
xmobar-0.7. Andrea Rossato. A Minimalistic Text Based Status Bar
Conference roundupOSCON. Simon Peyton-Jones gave a series of popular talks about Haskell and functional programming at OSCON, in Portland. Below are collected just some of the posts about Haskell at OSCON.
- A brief Haskell-at-OSCON trip report
- Wow! OSCON video viewing statistics
- OSCon Wednesday Part 2
- A Taste of Haskell, A Taste of C
- OSCON Day 1
- A Taste of Haskell
- Threading Building Blocks and C++
- OSCON: Wednesday Morning
- OSCON: Wednesday Afternoon
- OSCON 2007 (July 25)
- Nested Data Parallelism in Haskell
- OSCON 2007: Wednesday Morning Keynotes
- A Taste of Haskell
Blog noiseHaskell news from the blogosphere.
- Ord, Countable Ordinals, and an Idea of sigfpe
- Word numbers, Part 1: Billion approaches
- Implementing SmallTalk in Haskell
- From walking to zipping, Part 1: Moving right
- From walking to zipping, Part 2: Down and up
- Irrefutable patterns for the ignorant
- Making Haskell nicer for game programming
- Nested Data Parallelism in Haskell
- Compiling Haskell to Erlang
- Peano's Axioms IV: Advanced Functions and Integers
- 37 Reasons to Love Haskell
- On the value of strong static typing
- Parsec Parser Testing with QuickCheck
- Fallacies in the Great Dynamic vs Static Debate
- Implementing a dictionary using first class functions
- Strong specifications in Coq: the type says everything
- Run length encoding in Haskell
- Run length encoding and arrows
- Playing with Arrows
- Monads! (and Why Monad Tutorials Are All Awful)
- Haskell: Explaining Arrows through XML Transformations
- Monads as computation
- Closed Categories
- Good Haskell Style
- Monads are hard to teach
- Parsec
- First attempt at using GTK with Haskell
- Introduction to Haskell, Part 3: Monads
- Programming in Haskell
- Haskell Fun
- Algebraic Data Types again
- DFAs, Categories, and Typecheckers
- Haskell State Accessors (second attempt: Composability)
- Developing Programs and Proofs Spontaneously using GADT
- Encoding Inductive and Coinductive Types in Polymorphic Lambda Calculus
- Polymorphic Types in Haskell without Constructors?
- Substraction not Definable in Simply Typed Lambda Calculus
- Imperative programming is a special type of functional programming
- Binding Haskell to C structs
Quotes of the Week
- schluehk: ... Haskell taking over the world and troubled parents ask why their kids have turned into math hippies talking about nothing but love and abstract algebra...
- JohnGoerzen: Haskell manipulates functions with the same ease that Perl manipulates strings
- (anonymous Russian blogger): Glory to Simons! Glory to Swedish professors!
- Laurent Sansonetti: I appreciated so much the Haskell talks that I am now learning the language.
- dcoutts: Apparently that's only 200x faster than the faster of two common python serialisation libs, so we've got some way to go yet.
- slava: [on Isabelle for web frameworks] IM IN UR WEB SITEZ, CODING PROVABLY-CORRECT BLINK TAG!!
- gimboland: At present i'd say 'tinkering with a nuclear bomb' is approximately where i am with monads...
- jcreigh: Could not find instance Ord for type ProgrammingLanguage
- kowey: i suspect we're one of the rare wikibooks to use higher order templates
- monochrom: 'm a -> (a -> m b) -> m b' is much more to the point than 'mumble computation mumble computation mumble computation mumble'
- roconnor: damn it, Haskell pseudo code is indistinguishable from actual code
- slava: Because top enterprise industry analysts recommend Because top enterprise industry analysts recommend that managers need to focus on Agile methodologies, SOA, B2B and Yoneda's lemma in today's rich internet application-driven environment. Don't get left behind by the AJAX craze by missing out on call center outsourcing and Yoneda's lemma!
Code WatchNotable new features and bug fixes to the Haskell compilers.
Fri Jul 27 03:41:57 PDT 2007. Simon Marlow. Pointer Tagging. This patch implements pointer tagging as per our ICFP'07 paper 'Faster laziness using dynamic pointer tagging'. It improves performance by 10-15% for most workloads, including GHC itself. The original patches were by Alexey Rodriguez Yakushev, with additions and improvements by me. I've re-recorded the development as a single patch. The basic idea is this: we use the low 2 bits of a pointer to a heap object (3 bits on a 64-bit architecture) to encode some information about the object pointed to. For a constructor, we encode the 'tag' of the constructor (e.g. True vs. False), for a function closure its arity. This enables some decisions to be made without dereferencing the pointer, which speeds up some common operations. In particular it enables us to avoid costly indirect jumps in many cases. More information in the commentary.
About the Haskell Weekly News
Each week, new editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at cse.unsw.edu.au. The
darcs repository is available at
darcs get http://www.cse.unsw.edu.au/~dons/code/hwn
Haskell Weekly News: July 23, 2007
Welcome to issue 63 of HWN, a weekly newsletter covering developments in the 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!
Learn Haskell in 10 minutes. Chris Smith prepared a new tutorial on the basics of Haskell
Haskell Program Coverage 0.4. Andy Gill 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.
Uniplate 1.0. Neil Mitchell 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).
Atom: Hardware description in Haskell. Tom Hawkins announced Atom, a high-level hardware description language embedded in Haskell that compiles conditional term rewriting systems into conventional HDL.
Catch. Neil Mitchell 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!
Haskell Communities and Activities Report. Andres Loeh 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.
The Reduceron. Matthew Naylor 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.
Data.Derive. Neil Mitchell 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.
Piffle, a packet filter language. Jaap Weel 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.
Towards a Programming Language Nirvana. Simon Peyton-Jones appears on video, talking about the Haskell path to programming language Nirvana
Yi 0.2. Jean-Philippe Bernardy 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.
Foreign.AppleScript. Wouter Swierstra 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.
Asterisk Gateway Interface. Jeremy Shaw uploaded a simple AGI interface to hackage. For more about Asterix, see here.
Harpy. Dirk Kleeblatt 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. Lennart Augustsson has written a series of articles demonstrating its use for fast EDSLs.
Yaml Reference. Gaal Yahas 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.
Haskell'This section covers the Haskell' standardisation process.
- Dependent types
- Monomorphism restriction
- Operator backquoting
- Type signatures in export lists
- Pragma syntax
- inits is too strict
- Module system initialisation
- Polymorphic strict fields
LibrariesThis week's proposals and extensions to the standard libraries.
- Add exeExtension to System.Info
- The drive functions in the filepath package
- Optimising words
- Add dropPrefix
HackageThis week's new libraries in the Hackage library database.
HsOpenSSL-0.1. Masatake Daimon HsOpenSSL 0.1, OpenSSL binding for Haskell
Emping-0.3. Hans Van Thiel Emping derives heuristic rules from nominal data
parsely-0.1. Samuel Bronson parsely, Typeclasses for parsing monads, and some instances
sessions-2007.7.15. Matthew Sackman sessions, Session Types for Haskell
CC-delcont-0.1. Dan Doel CC-delcont1, An implementation of multi-prompt delimited continuations
gd-3000.3.0. Bjorn Bringert gd, A binding to the GD graphics library
StrategyLib-126.96.36.199. Samuel Bronson StrategyLib, Strafunski's StrategyLib
ports-0.4.3.2. Don Stewart ports, concurrent and distributed Haskell programming in the IO monad without relying on mutable variables.
Finance-Quote-Yahoo-0.1. Brad Clawsie Yahoo-0.1, Obtain quote data from finance.yahoo.com
logict-0.2. Dan Doel LogicT, A continuation-based, backtracking, logic programming monad.
utf8-string-0.1. Eric Mertens utf8-string, Support for reading and writing UTF8 Strings
type-int-0.4. Edward Kmett type-int, Type level 2s- and 16s- complement Integers (positive and negative), Booleans, Ord and Eq
cgi-3001.1.5. BjornBringert cgi-3001, a Haskell library for writing CGI programs
xmobar-0.6. AndreaRossato xmobar, Xmobar is a minimal status bar for the XMonad Window Manager
monad-param-0.0.2. EdwardKmett monad-param, parameterized monads
dfsbuild-1.0.1. JohnGoerzen dfsbuild, dfsbuild is the program used to create the Debian From Scratch CD image.
Conference roundup
AngloHaskell. is coming up in Cambridge, August 10-11
Haskell Hackathon 07 II. Hac07 coming up in Freiburg, Oct 5-7
Blog noiseHaskell news from the blogosphere.
- ONLamp: An Introduction to Haskell
- ONLamp: An Introduction to Haskell: Part 2: Pure Functions
- Knuth-Morris-Pratt in Haskell
- Towards Better Error Handling
- Dynamic epsilons in Haskell with a bit of type hackery
- Null pointers vs None vs Maybe
- Lambda calculus in alligator form
- Learning Haskell databases
- liskell.org
- Norvig's spell checker and idiomatic Haskell
- Trying out functional programming
- Trying out functional programming: part 2
- Roll Your Own Window Manager: Tracking Focus with a Zipper
- You Lazy Thunk!
- What's a monad?
- Erlang: how syntax can discourage good programming practices
- Regular expressions in Haskell
- Producing diagrams
- Notes on Chapter 2 of SOE
- Xmonad and KDE on kubuntu feisty
- Does XMonad crash? On proving pattern coverage with Catch
- A simple echo server
- More deforestation
- State of the computer book market
- Pragmatic Haskell
- Analysing Haskell book sales
- Real-world Haskell: it's time
- Real-World Haskell
- Tim O'Reilly: Real World Haskell title under development
- Haskell: Ready for Prime Time
- Haskell's time has come
- Haskell Book in the Making!
- Finally, a book on how Haskell can be applied to 'real-world' problems!
- Haskell - Ready for the mainstream?
- Great news in the Haskell Books front
- Practical reasons for learning some functional languages
- Preconditions on XMonad
- Xmonad does status bars right by not doing them at all
- Perfect Programming Languages: Part 1, Syntactic Similarity
- Haskell diary, day 1
- A functional programmer stole my job
- Haskell incarnate: robots and Haskell
- Chapter 3 of SOE
- Implementing Network.HTTP with ByteStrings
- Signal handling in Haskell
- ML, Haskell and Coq
- Djinn, Coq, Monad and a bit of Haskell
- A beginner with Parsec
- A perceptron in Haskell
- Piffle: a packet filter language with a compiler written in Haskell
- OriDSEL: a DSL for origami
- Joel's compiler in OCaml and Haskell
- JGraph in Haskell
- A neural network in Haskell
- Scientific.Dimension: Type Arithmetic and Physical Units in Haskell
- Flattening an array of arrays
- Travelling Salesman Problem: Introduction (in Haskell)
- Parallel programming, functional vs. imperative languages
- The impossible is only possible sometimes
- More Scheming with Haskell
- How to write tolerably efficient optimzation code without really trying...
- Harpy: generating machine code from a Haskell
- A little DSL embedded in Haskell
- Generating more code with Harpy
- Representing DSL expressions in Haskell
- Disassembly
- A simple embedded compiler in Haskell
- Functional composition
- Beautiful Haskell implementation of a power set
- Constructability, Uncountability, and w-Haskell
- Uncountable Ordinals, part 2
- Category Theory and Haskell 3 : Algebras and Monads
- The Supermarket Pricing Kata in Haskell
- Implementing a type for partial values
- Appreciating Constraint Programming
- Continuing with continuations in Haskell
- Find the Bug
- Haskell decision making
- Learning Haskell and Number Theory: The End of GCD
- A foray into number theory with Haskell
- Flatten Benchmark for Haskell
- Solving an arithmetic puzzle with Haskell
- Haskell DataPipe
- Refining my first steps with Parsec
- Equational Reasoning in Haskell
- Peano's Axioms Part I: Haskell and Type Theory, and Object Oriented Programming
- Making Haskell faster than C!
- Power serious: power series in ten one-liners
- Haskell for Programmers: a tutorial
- Parameterized Monads in Haskell
- Monomorphism and the unintentional fib
- Cohatoe - Contributing Haskell to Eclipse
- Getting started with HUnit
- A Neat Problem
- Parsing, CFGs, and Type Hacking
- Using haskell for reading raw ethernet frames
- A simple Haskell malware: X11 keylogger
- I'll have a Buchburger with fries: solving XKCD's menu puzzle
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 the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at cse.unsw.edu.au. The
darcs repository is available at
darcs get http://www.cse.unsw.edu.au/~dons/code/hwn
Sequence Looking For New Home
Hi everyone,
I've been hosting sequence.complete.org on my own server for awhile, but have found that I haven't had time to maintain it lately. I'm looking for someone else that might be willing/able to host and maintain it.
It's using Drupal on MySQL, though a fairly old version of Drupal at the moment.
One result of my lack of time is that there has been a problem with spam on the Sequence. I've had to disable new user account requests due to the hundreds of emails to bogus addresses this is generating (and a few to valid addresses that spammers use).
If you want an account, or would be interested in taking over the site, please send a note to me... jgoerzen on complete ,dot, org.
-- John
Haskell Weekly News: May 07, 2007
Welcome to issue 62 of HWN, a weekly newsletter covering developments in the Haskell community.
This week sees the release of Atom, a hardware description language embedded in Haskell, along with the usual suite of new libraries and tools. In addition, The Monad.Reader Issue 7 was released, and the hackage upload festival continues unabated.
Atom: Hardware Description in Haskell. Tom Hawkins announced the release of Atom, a high-level hardware description language embedded in Haskell, compiles conditional term rewriting systems into conventional HDL.
The Monad.Reader: Issue 7. Wouter Swierstra announced the latest issue of The Monad.Reader. The Monad.Reader is a quarterly magazine about functional programming. It is less-formal than journal, but somehow more enduring than a wiki page or blog post.
HDBC: Haskell Database Connectivity. John Goerzen announced that HDBC 1.1.2 is now released. HDBC provides an abstraction layer between Haskell programs and SQL relational databases. This lets you write database code once, in Haskell, and have it work with any number of backend SQL databases.
FileManip: Expressive Filesystem Manipulation. Bryan O'Sullivan announced the FileManip package provides expressive functions and combinators for searching, matching, and manipulating files.
photoname: manipulate photos using EXIF data. Dino Morelli announced the release of photoname, a command-line utility for renaming and moving photo image files. The new folder location and naming are determined by two things: the photo shoot date information contained within the file's EXIF tags and the usually-camera-assigned serial number, often appearing in the filename.
RSA-Haskell: Command-line Cryptography. David Sankel announced the release of RSA-Haskell, a collection of command-line cryptography tools and a cryptography library written in Haskell. It is intended to be useful to anyone who wants to secure files or communications or who wants to incorporate cryptography in their Haskell application.
Haskell modes for Vim. Claus Reinke summarised the various Haskell/Vim support currently available
French Translation of Gentle Introduction to H98. The haskell-fr team announced a completed a translation into French of the 'Gentle Introduction to Haskell'.
Haskell'This section covers the Haskell' standardisation process.
HackageThis week's new libraries in the Hackage library database.
BitSyntax-0.2. Adam Langley. A simple function for the construction of binary data.
filepath-1.0. Neil Mitchell. Library for manipulating FilePath's in a cross platform way.
Chart-2007.3.5. Tim Docker A library for generating 2D Charts and Plots.
FileManip-0.1. Bryan O'Sullivan A Haskell library for working with files and directories.
hsns-0.5.2. Austin Seipp A network sniffer written in a purely fun language.
template-0.1. Johan Tibell Simple string substitution library that supports dollar-based substitution.
ASN1-0.0.1. Dominic Steinitz ASN.1 suppport for X.509 identity and attribute certificates, PKCS8, PKCS1v15.
The Proper Definition of (evaluate :: a -> IO a). Isaac Dupree described a variant of evaluate with modified semantics to the current implementation.
Why is Data.Set not a monad?. Dan Doel documented the reasons why Data.Set is not currently an instance of Monad.
Chaos. Andrew Coppin announced chaos, a fun image generating mystery program.
The Functional Pearls. Don Stewart collected the functional pearls known to be available online, on to a single page on the Haskell wiki.
Blog noiseHaskell news from the blogosphere.
- HUG: Nested Data Parallelism in Haskell
- HUG: London Haskell User Group
- New York Functional Programmers meeting: roundup
- Python-style string split in Haskell
- Thinking in types
- Using the Haskell package system
- Fixed precision, an update
- Use of Text.XHtml.Strict for Outputting XHTML
- Idiom: Plan for Currying
- Bowling in Haskell
- The Trivial Monad
- Homeland Security Threat Level Monad
- Monads as universe helpers
- Understanding comonads
- Coding in Haskell: conciseness
- Functional programming in Wall Street
- Phantom Types for Real Problems
- Haskell rocks
- Advertising the ICFP Programming Contest
- Haskell wikibook
- Roll Your Own Window Manager: Part 1: Defining and Testing a Model
- Haskell and the Type Calculus: or, the Good -> Bad -> Ugliness of Types
- FileManip, an expressive Haskell library for manipulating files
- Programming in Haskell
- Parsing JSON in Haskell
- Namespace confusion
- A Scheme parser in Haskell
- Simple performance analysis
- Playing with Haskell unsafely
- repeat and sequence
- Haskell and C: functions returning more than one value
Quotes of the Week
- Oleg K: So, `bind' is `let' and monadic programming is equivalent to programming in the A-normal form. That is indeed all there is to monads
- kc5tja: Premature evil is the root of all optimization
- Tommah: Remember, kids: if you program in a language with side effects, the terrorists win.
- ndm: Comments are for people who can't sense what their code does from the indentation
- jcreigh: GHC has lots of interesting features above Haskell98, I've noticed. 'You can take the red pill or the blue pill...' 'Hmm. What's the green pill?' 'What? Oh. That's GHC.'
- schluehk: It's about a variant of the other big Haskell credo: once it compiles it works. Once you have written a prototype you have also a spec. If this is not agile I don't know what? It is a quite remarkable inversion. Formerly people wanted tools that are so versatile that they let them express almost everything with great ease and where they didn't care a lot about speed optimizations and corner cases in the early iterations. Now people want tools that restricts intentionally their expressivity to let them do big upfront design as source code. They want to be guided to initial perfection. Let's face it: Haskell has quite some momentum in the dialectic move.
Code WatchNotable new features and bug fixes to the Haskell compilers.
Thu May 3 06:19:55 PDT 2007. Simon Marlow. Add history/trace functionality to the GHCi debugger. The debugger can now log each step of the evaluation without actually stopping, keeping a history of the recent steps (currently 50). When a (real) breakpoint is hit, you can examine previous steps in the history (and their free variables) using the :history, :back and :forward commands.
Wed May 2 09:34:57 PDT 2007. Simon Peyton-Jones. Make records work properly with type families. This fixes Trac #1204. There's quite a delicate interaction of GADTs, type families, records, and in particular record updates.
About the Haskell Weekly News
Each week, new editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at cse.unsw.edu.au. The
darcs repository is available at
darcs get http://www.cse.unsw.edu.au/~dons/code/hwn
Haskell Weekly News: April 27, 2007
Welcome to issue 61 of HWN, a weekly newsletter covering developments in the Haskell community.
The last week was a very exciting week for the Haskell community, with a new GHC release, the first release of Xmonad, a window manager written in Haskell, and DisTract, a new distributed bug tracker, written in Haskell. A number of new Haskell jobs were announced, and several new user groups were formed!
GHC 6.6.1. Ian Lynagh announced a new patchlevel release of GHC. This release contains a significant number of bugfixes relative to 6.6, so we recommend upgrading. Release notes are here. GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces.
Xmonad 0.1. Spencer Janssen announced the inaugural release of Xmonad. Xmonad is a minimalist tiling window manager for X, written in Haskell. Windows are managed using automatic layout algorithms, which can be dynamically reconfigured. At any time windows are arranged so as to maximise the use of screen real estate. All features of the window manager are accessible purely from the keyboard: a mouse is entirely optional. Xmonad is configured in Haskell, and custom layout algorithms may be implemented by the user in config files.
DisTract: Distributed Bug Tracker implemented in Haskell. Matthew Sackman announced DisTract, a Distributed Bug Tracker. We're all now familiar with working with distributed software control systems, such as Monotone, Git, Darcs, Mercurial and others, but bug trackers still seem to be fully stuck in the centralised model: Bugzilla and Trac both have single centralised servers. This is clearly wrong, as if you're able to work on the Train, off the network and still perform local commits of code then surely you should also be able to locally close bugs too. DisTract allows you to manage bugs in a distributed manner through your web-browser. The distribution is achieved by making use of a distributed software control system, Monotone. Thus Monotone is used to move files across the network, perform merging operations and track the development of every bug. Finally, the glue in the middle that generates the HTML summaries and modifies the bugs is written in Haskell.
IOSpec 0.1. Wouter Swierstra announced the first release of the Test.IOSpec library, that provides a pure specification of some functions in the IO monad. This may be of interest to anyone who wants to debug, reason about, analyse, or test impure code. Essentially, by importing libraries from IOSpec you can the same code you would normally write in the IO monad. Once you're satisfied that your functions are reasonably well-behaved, you can remove the Test.IOSpec import and replace it with the 'real' functions instead.
wl-pprint-1.0: Wadler/Leijen pretty printer. Stefan O'Rear announced wl-pprint-1.0, the classic Wadler / Leijen pretty printing combinators, now in 100% easier to use Cabalised form! PPrint is an implementation of the pretty printing combinators described by Philip Wadler (1997). In their bare essence, the combinators of Wadler are not expressive enough to describe some commonly occurring layouts. The PPrint library adds new primitives to describe these layouts and works well in practice.
London Haskell User Group. Neil Bartlett announced the first meeting of the London Haskell User Group on Wednesday 23rd May from 6:30PM. The meeting will be held at City University's main campus in central London, and Simon Peyton Jones will be coming to give a talk.
New York Functional Programmers Network. Howard Mansell announced a New York area-based network for Haskell (and functional) programmers. The idea is to have a regular meeting through which functional programmers can meet to discuss experiences, get and give information, find jobs.
Data.Proposition 0.1. Neil Mitchell announced the release of Data.Proposition, a library that handles propositions, logical formulae consisting of literals without quantification. It automatically simplifies a proposition as it is constructed using simple rules provided by the programmer. Implementations of propositions in terms of an abstract syntax tree and as a Binary Decision Diagram (BDD) are provided. A standard interface is provided for all propositions.
Book reviews for the Journal of Functional Programming. Simon Thompson sought interested contributors for book reivews for the Journal of Functional Programming. There is a list of books currently available for review.
Reminder: HCAR May 2007. Andres Loeh reminded us that the deadline for the May 2007 edition of the Haskell Communities and Activities Report is only a few days away -- but this is still enough time to make sure that the report contains a section on your project, on the interesting stuff that you've been doing; using or affecting Haskell in some way.
Template 0.1: Simple string substitution. Johan Tibell announced a simple string substitution library that supports substitution ala Perl or Python.
hpaste for emacs. David House announced hpaste.el, an Emacs Lisp library that integrates hpaste, the Haskell pastebin, into Emacs. It provides two functions, hpaste-paste-region and hpaste-paste-buffer, which send the region or buffer to the hpaste server as required.
Haskell'This section covers the Haskell' standardisation process.
- General pattern bindings
- Relax the restriction on Bounded derivation
- data syntax
- Mathematical preludes
- Literate Haskell specification
LibrariesThis week's proposals and extensions to the standard libraries.
HackageThis week's new libraries in the Hackage library database.
- X11-extras-0.1
- hinstaller-2007.4.24
- IOSpec-0.1.1
- gd-3000.0.1
- xmonad-0.1
- YamlReference-0.3
- parsedate-2006.11.10
- chunks-2007.4.18
- wl-pprint-1.0
- Emping-0.1
- hsns-0.5.1
- htar-0.1
- cabal-upload-0.3
- unix-compat-0.1
- tar-0.1
GHC Release Plans. Simon Marlow initiated a discussion on possibe release timelines for upcoming GHC versions.
More inlining. Duncan Coutts asked about more fine grained control over inlining in GHC, to ease term rewriting with RULES
Haskell version of Norvig's Python Spelling Corrector. Pete Kazmier spawned a long thread covering various implementations of spelling correctors in Haskell
Quantitative Functional Programmer. Credit Suisse. The Global Modelling and Analytics Group (GMAG) is responsible for producing state-of-the-art pricing, trading and hedging models for Credit Suisse. These models are used across a range of businesses in the Fixed Income and Equity Divisions. The groups mandate covers all major asset classes including Credit Derivatives, Commodities, Emerging Markets, Equity Derivatives and Convertibles, Exotics, Foreign Exchange, Fund Linked Products, Interest Rate Products and Mortgage Derivatives. GMAG operates globally with 85 members located in New York, London, Hong Kong and Tokyo. We are currently building a Domain Specific Language (embedded in Haskell) that will be used within GMAG. We require intelligent, motivated people to develop and extend this language. These individuals will also work with modellers to aid them in effectively applying these new tools.
Haskell programmer positions. HAppS. HAppS LLC has part-time and full-time positions open for Haskell programmers to: improve the open source Haskell codebase at HAppS.org; implement infrastructure to make it work well in Amazon S3/EC2 environments; make http://pass.net reliable enough to be used by live apps; build the mass market apps we want to run on top of the HAppS/Pass.net platform. We are looking for people who: have substantial experience programming Haskell; have experience building Internet apps (not necessarily in Haskell but would be good), and live in any of these places: the Internet, New York, San Francisco Los Angeles.
Vacancy for a PhD student. Johan Jeuring announced a vacancy for a PhD student in the Strategy Feedback project. Knowledge of Haskell is a big plus; implementation of most of the tools will be done in Haskell. Length: 1+3 years, Open University the Netherlands, Location: Heerlen.
Blog noiseHaskell news from the blogosphere.
- Overloading Haskell numbers, part 1, symbolic expressions
- Overloading Haskell numbers, part 2, Forward Automatic Differentiation
- Overloading Haskell numbers, part 3, Fixed Precision
- More Haskell parallelism
- Haskell status: impressed
- On haskell: writing a packet sniffer
- Must-see Haskell talks at OSCON 07
- Zen and the Art of Functional Programming
- Playing with sections in Haskell
- More playing with sections (and flip)
- Thinking in objects
- Robot localization using a particle system monad
- 21 open problems in typed lambda calculus
- Arrows and security in Haskell
- Haskell GUI Programing
- Splitting a string in Haskell
- Introduction to Haskell: I like it a lot
- Haskell (ish) code, Java gui
- Haskell wikibook blurb
- Functional and Object-Oriented Programming
- Xmonad: a lightweight window manager
- Xmonad: a tiling window manager written in Haskell
- Xmonad: Haskell window management has arrived
- Xmonad: a minimal window manager in Haskell
- Xmonad: in the footsteps of wmii
- Xmonad: a new window manager
- Haskell code
- IO in Haskell
- Haskell records considered grungy
Quotes of the Week
- apfelmus: Programming in Haskell is like dual-wielding two light sabers whereas programming in imperative languages is like being equipped with a blunt kitchen knife.
- mwc: C++ is multiparadigm in the same way a dog with 4 table legs nailed onto it is an octopus
- ptolomy: Sometimes Haskell feels like a personal trainer for proper program construction. You half-ass something, and the compiler doesn't let you get away with it and won't let you move on until you do it right.
- dons: I wish you success and may your lambdas always beta reduce
- quicksilver: May your years be long and your type inference algorithms sound.
- inverselimit: So I tried as my first project in Haskell to write something that decomposes modules of polynomials using Schur-Weyl duality. This turned out to be a little tricky without being comfortable with the syntax
- jcreigh: Could not find instance Ord for type ProgrammingLanguage
Code Watch
Apr 19 07:23:58 PDT 2007. Simon Marlow. More debugger improvements. :list shows the code around the current breakpoint. Also it highlights the current expression in bold (the bold/unbold codes are hardwired to the ANSI codes right now, I'll provide a way to change them later). :set stop cmd' causes cmd to be run each time we stop at a breakpoint. In particular, :set stop :list is particularly useful.
Wed Apr 25 03:18:32 PDT 2007. simonpj. Add -fwarn-monomorphism-restriction (on by default) to warn when the MR is used. Users often trip up on the Dreaded Monomorphism Restriction. This warning flag tells you when the MR springs into action. Currently it's on by default, but we could change that.
Thu Apr 26 02:37:19 PDT 2007. Pepe Iborra. New section on debugging lambdas in the ghci user guide
About the Haskell Weekly News
Each week, new editions are posted to the Haskell mailing list as well as to the Haskell Sequence and Planet Haskell. RSS is also available, and headlines appear on haskell.org. Headlines are available as PDF.
To help create new editions of this newsletter, please
see the contributing
information. Send stories to
dons at cse.unsw.edu.au. The
darcs repository is available at
darcs get http://www.cse.unsw.edu.au/~dons/code/hwn