Projects

These are the 2023 projects, which we mistakenly linked in the 2024 reminder email.
Please find the 2024 projects here.

This is the list of projects that attendees of ZuriHac 2023 are planning to work on. If any of these spark your interest, then you will be able to join the project channel on Discord or find the contact at the venue and hack away on it with other participants.

If you want to get your own project included, please add your project name and description by submitting a pull request here.

An as of yet unnamed dataflow programming project
Contact: Philip Nilsson
Contributor level: intermediate, advanced
Contact: Artin Ghasivand
Contributor level: intermediate
A CLI Tool for showing term substitution and outgoing call hierarchy
Contact: Joachim Breitner
Contributor level: intermediate, advanced
The Bootstrappable project is about building our compilers etc. from source, without relying on pre-built binaries or generated files. Can we achieve this for GHC?
Contact: Stevan Andjelkovic
Contributor level: intermediate, advanced
How can we build reliable, scalable and maintainable computer systems? Over the past couple of months I've written about how we can use ideas from Erlang/OTP, LMAX Disruptor and FoundationDB to answer this question: https://github.com/stevana/armstrong-distributed-systems/blob/main/docs/erlang-is-not-about.md, https://github.com/stevana/pipelined-state-machines, https://github.com/stevana/coroutine-state-machines, https://github.com/stevana/property-based-testing-stateful-systems-tutorial, https://github.com/stevana/supervised-state-machines, https://github.com/stevana/hot-swapping-state-machines. Next step would be to take those loosely coupled ideas, expand upon and combine them into a concrete and coherent plan.
Contact: Jonathan King
Contributor level: intermediate
Update the existing example project to support newer versions of GHC (it's currently on 8.6).
Contact: Alexander McKenna
Contributor level: beginner, intermediate, advanced
The Clash compiler compiles Haskell to VHDL and (System)Verilog. If anyone is interested in working on the compiler, or learning a bit about using Clash come and say hi, no previous knowledge required!
Contact: Giulio Cesare Solaroli
Contributor level: intermediate
New version of Clipperz password manager implemented in PureScript
Contact: Michael Peyton Jones
Contributor level: intermediate
The HLS codebase has a lot that could be better documented. I'm going to write a lot of Haddock.
Fix bugs in `deriving` in GHC
Contact: Ryan Scott
Contributor level: advanced
Contact: Hécate Moonlight
Contributor level: beginner, intermediate, advanced
Together we will develop features for a modern web application in Haskell that serves the community
Contact: Johannes Drever
Contributor level: beginner, intermediate
An educational app for a peculiar logical calculus, written with ReflexFRP.
Contact: Alexandre Delanoë
Contributor level: beginner, intermediate, advanced
Collaborative knowledge map protocol and interface fully written in Haskell/Purescript.
Contact: Alan Zimmerman
Contributor level: advanced
Too to enable easily modifying haskell source code by manipulating the AST
Contact: Rodrigo Mesquita
Contributor level: beginner, intermediate, advanced
A vulkan-based, shader-centric, type-heavy Haskell game engine. Ideally we'd be able to make one small game with it.
Contact: Jaro Reinders
Contributor level: intermediate, advanced
Parser combinators are neat, but they require you to contort your grammar to avoid things like left recursion. To resolve this problem, we'll be trying to marry GLL parsing techniques with parser combinators.
Contact: Tom Westerhout
Contributor level: intermediate, advanced
Haskell bindings to Halide that allow to write high-performance array and image processing kernels directly in Haskell
Contact: Björn Gohla
Contributor level: intermediate, advanced
The pledge system call on OpenBSD is a voluntary security mechanism, that a process can use to restrict the available kernel API. It is used throughout the OpenBSD base system and some ports, to guard against undiscovered exploits, following the defense in depth principle. System calls are aggregated into related groups called promises. It is considered good practice to discard a promise, i.e., access to any part of the kernel API, as soon as it is no longer needed. I have implemented a prototype Haskell binding for pledge, that uses type annotations to incrementally minimize the exposed kernel API. This weekend I plan to work on applying this to a (small) real world application. I intend to add a translation layer to seccomp eBPF at some point, so his is relevant beyond OpenBSD. Come say hi, if you think your application could benefit form this idea, or you have an opinion on it.
Contact: David Binder
Contributor level: beginner, intermediate, advanced
Hacking on the Haskell Program Coverage Toolsuite
Haskell refactor
Contact: aravind mallapureddy
Contributor level: intermediate, advanced
Looking at auto refactoring Haskell code using SYB (uniplate) on GHC AST
Contact: Tristan de Cacqueray
Contributor level: beginner, intermediate, advanced
Kickstart the database by implementing the OSV schema export and write advisories for the known vulnerabilities
Contact: Li-yao Xia
Contributor level: intermediate
A simple webapp where you can paste some Haskell code to learn about unfamiliar language features. PureScript prototype to be rewritten in Haskell with the new JavaScript backend.
Contact: Reynaldo Cordero
Contributor level: beginner, intermediate, advanced
Tooling for a Katafication code Hackathon
Heave
Contact: Valentin Gagarin
Contributor level: intermediate
A lambda calculus for file system trees (or: the universal FFI)
Contact: Daniel Firth
Contributor level: intermediate
IHP
Contact: Marc Scholten
Contributor level: intermediate, advanced
The IHP web framework
Contact: Felix Springer
Contributor level: beginner, intermediate, advanced
A desk-booking web application.
Contact: Dominic Steinitz
Contributor level: intermediate
A library for probabilistic programming in Haskell
Contact: Rashad Gover
Contributor level: beginner, intermediate, advanced
Okapi is a micro web framework for developing web servers in Haskell.
Contact: Las Safin
Contributor level: beginner, intermediate, advanced
eDSL framework (like compiling with categories but better)
Contact: Miao, ZhiCheng
Contributor level: intermediate
Superfluid is a new digital money allowing time-continuous payment. It is live on EVM chains, and its specification is being written in Haskell. Let's port it to Cardano!
Contact: Andreas Herrmann
Contributor level: beginner, intermediate, advanced
Bazel is an open source build system developed to support large, polyglot projects. Join this project or stop by if you would like to learn about building Haskell with Bazel, help us make it easier to get started, learn when Bazel may add value to your project, or if you're interested in contributing to rules_haskell.
Contact: Dylan Thinnes
Contributor level: beginner, intermediate
A language to generate slide rules, currently a monadic DSL on top of diagrams, maybe something cooler soon!
Contact: Fabrizio Ferrai
Contributor level: beginner, intermediate
PureScript package manager and build tool
Contact: David Thrane Christiansen
Contributor level: beginner, intermediate
This site collects error messages and warnings for Haskell development tools such as GHC, GHCup, and Stack, documenting them with detailed descriptions and examples. We'll work on documenting all the remaining errors and warnings, as well as extending support for the site to additional tools. No specific technical skills other than curiosity, Git, and Markdown are required, but experience with CSS, JavaScript, Hakyll, and of course Haskell are all useful for certain kinds of contributions.
Contact: Bryan Richter
Contributor level: beginner, intermediate
With USort, the sort is you! Currently implementing a web app (with ghc-javascript) based on the existing command-line utility
Contact: Tony Zorman
Contributor level: beginner, intermediate, advanced
Dynamically tiling X11 window manager, written and configured in Haskell