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.
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-188.8.131.52. 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.
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
- 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
- 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