2 Projects

If you have a project that you want to work on at the Hackathon, please describe it here.

Since Hackathons are great for teamwork, consider joining one of the projects mentioned below. If you're interested in one of these projects, add your name to the list of hackers under that project.

2.1 Trifecta

Trifecta is a library for dealing with both parsing and the ancillary concerns that arise once you have a parser.

Interested in this project:

Edward Kmett

Doug McClean

Paul Martel

2.2 Machine code analysis tools

Haskell could be a great platform for analyzing and reverse-engineering machine code. We already have disassemblers (x86, ARM), object format parsers (ELF, PE/COFF, MachO), SMT and bitvector solvers, dataflow analysis, etc. Let's improve these tools and fill in the gaps.

2.4 Livecoding and Music

Haskell has libraries for livecoding and music composition. We need more tutorials and tools. Focus will be on hsc3 for Supercollider.

Interested in this project:

Tom Murphy (amindfv)

2.5 Wide fanout sequences

I'd like to build a drop-in replacement for Data.Sequence that uses wide-fanout trees, similar to the wide-fanout tries used by Johan Tibbell in recent versions of unordered containers. The hope is to come up with something that's substantially faster than lists or vectors, even for short lists, while supporting efficient (lg n) concatenation and indexing.

Interested in this project:

Jan-Willem Maessen

2.6 hxournal

hxournal is a note-taking program being developed in haskell and gtk2hs. It is modeled after xournal program but it is going to have more functionalities and better flexibility.

2.8 Refactoring combinators for Haskell

Highly experimental project! Create a code database for Haskell, support querying and transformation via Datalog, and use this to implement a set of refactoring combinators that would allow arbitrary compilation-preserving transformations of Haskell codebases. I posted some more details here:

2.9 Smarter evaluation strategies for lazy languages

Highly experimental project! Whiteboard ideas for a specializing, strictness propagating evaluation strategy with the same termination properties as normal order evaluation, but better space usage. Then implement a prototype. The general idea is to propagate additional strictness information at runtime so that evaluation becomes more predictable for polymorphic and higher order code. Some more details here: