Dedicated to the greatest language

LIPL: A small language implemented in Haskell. Very well documented.

OOHaskell: Haskell's overlooked object system
 
Parallel GC (PDF) since GHC 6.10. New parallel RTS (PDF) since GHC 6.12.

New build system of GHC
 
 
Command option combination to achieve best performance In the shootout we typically use only: -O2 -optc-O2 -optc-march=pentium4 -optc-ffast-math -funbox-strict-fields, so you might double check using -O2 -optc-O2. Also see here.
 
 
MissingH - a large collection of assorted utility libraries for Haskell. Its primary audience is Haskell programmers that want to get practical things done fast.
 
Casual notes by Henry, including Memoizing in Haskell and a demo of the PrettyPrint lib.
 
ICFP 08 Entries (with their three lowest scores on spiral.wrld): The One Liners (many files, but crashed once, timed out once, reached home 3 times, 18880 + 21100 + 26430), RHZ (reduced to 227 lines by me, with a 3d visualiser in another file, 18530 + 18980 + 21360, reached home every time), Lazy MonkeysEgér a Marson, solo r6 (200 lines, 26460 + 30100 + 36660, timed out once, crashed 3 times, reached home once), LazyBear (code, 500+ lines, 16460 + 16290 + 20020, killed by Martian once, reached home 4 times), Greg Heartsfield (timed out every time, 30100 * 3).

 
Darcs evaluation by the GHC team. More thoughts. Patch theory. Slides, Slides. A blog post. Camp, known as Darcs 3. A recent discussion.
A place to host darcs repositories. A talk. Another talk.
 
A Haskore tutorial.
 
 
Documents of the efforts, code, and apocrypha that have grown up around the efforts by various developers at Renci.
 
 
Language.C parser (blog, code, doc)
 
 
 
A summary of audio libs.
 
Coding style: lambdabot, cornell, ian, tibbe

Panda, a static blogging engine, based on Kibro.

Getter and setter [1, 2].

Lambda VM - Haskell to Java

gat - git in Haskell

OmegaGB - A Nintendo Game Boy emulator

Twidge - a twitter client

HBuild - a dependency framework for Cabal (background). A blog post on cabal.

Zipper - an important functional data structure [1, 2, 3, 45], used in XMonad and Yi.

Recursive types explained. (code)


Haskell Platform: Batteries Included

MetaHDBC - uses Template Haskell's ability to evaluate arbitrary IO, to partially process SQL query at compile time and check the type.


Quasiquotation (the name comes from Lisp/Scheme, aka backquote) - extending TH's ability to quote Haskell code, to allow for quoting arbitrary object languages, instead of writing the abstract syntax. Will be supported in GHC 6.10. Also see a Chinese discussion thread. This idea was first introduced in Lisp.



Formal System Design

Edison - a library of purely functional data structures. There's also a bunch of other interesting projects by Robert Dockins, such as Shellac, a framework for creating REPL shells in Haskell.


Software Tools in Haskell, somewhat similar to PLEAC.





Little games including Tetris and Mario, unfortunately commented in Japanese.


Compiler Development Made Easy (PDF, code) - introducing the new GHC plugin system. The article appeared in the Google Summer of Code 2008 special issue of Monad.Reader. The feature probably will enter GHC 6.12.

LHC - a fork of JHC, a whole program optimizing compiler. Blog.
UHC - Utrecht Haskell Compiler.

HLint - common mistakes detector


Liskell (code): a great example of extending GHC using the API. 
Another example: ghci-haskeline, an implementation of ghci using the Haskeline line-input library.

Clean quick guide for Haskellers.


Haskell abstraction vs ML abstraction. The blog posts describe a serious real-world problem: programming against interfaces. The common practice that abstracts out types and operations into a module isn't a good solution, as you need to change the source code to import different modules you'd like to experiment with. The author concludes that multi-parameter type classes, or the new cool type families only render solutions inferior to ML's functors, which I sadly agree. The blog comments are worth reading too. In particular, Stefan Wehr brings up a paper ML Modules and Haskell Type Classes: A Constructive Comparison  that gives a systematic way to simulate ML-style modules with associated types. Chung-chieh Shan also points out that Haskell module is purely a namespace mechanism and  not for abstraction. See reddit.

BASIC, a simple demonstration showing how to implement DSEL.

New GUI libraries I should be learning: Grapefruit (ANN), Barrie.

Two books on implementation of a Miranda-like language published in 1987 and 1992. A course project that translate GHC Core to Java IR.

Vintage Basic Interpreter


The $ operator explained



Reduceron - hardware for reducing Haskell


Understanding arrows [1, 2, 3]

compose-trans, a helper for writing composable monad transformers.

MiniSTG, an interpreter for STG.

A new book, Computational Semantics with Functional Programming (pdf).

The Haskell School of Music

An example showing how to use GreenCard for FFI

Adventures in Three Monads (to appear in Jan 2010 TMR) looks at three useful monads beyond MTL: LogicT, Prompt, and Failure. Failure was explained fairly well. LogicT was OK, but advanced topics were confusing, so I gotta read the paper. Prompt was sketchy, but I didn't read it carefully either.



Type-Based Reasoning and Free Theorems http://www.iai.uni-bonn.de/~jv/ppl2010-slides.pdf

Blog posts on Category Theory by sigfpe http://blog.sigfpe.com/2010/03/partial-ordering-of-some-category.html

Haskell Object Observation Debugger (Hood) www.ittc.ku.edu/csdl/fpg/Hood


Laziness, strictness analysis, and the explanation of this seemingly strange result involving bottom
Č
Ċ
Wei Hu,
Feb 9, 2009, 3:52 PM
Ċ
cs.pdf
(1185k)
Wei Hu,
Nov 14, 2009, 9:03 AM
ċ
icfp08.tgz
(8k)
Wei Hu,
Jul 21, 2008, 3:30 PM
Comments