MuniHac 2026

MuniHac 2026

October 9–11, 2026 • on-site in Munich

About MuniHac

Join us at MuniHac, Munich's yearly Haskell gathering! For three days, Haskell folks from all over meet up to code, learn, and hang out. New to Haskell or been at it for years? Doesn't matter - we've got workshops, talks, and projects for everyone. It's a great chance to learn and meet the enthusiastic Haskell community!

The MuniHac is organized by TNG Technology Consulting GmbH and will be hosted at the TNG offices in Munich (Beta-Straße 13, 85774 Unterföhring).

TNG Technology Consulting GmbH
Beta-Straße 13 • 85774 Unterföhring
View on Google Maps / View on Open Maps

Registration

Registration is open. We're looking forward to seeing you in Munich!

Keynote Speakers


Manuel Chakravarty
justtesting.org

Ziyang Liu
Input Output

Dominik Schrempf
Well-Typed

Schedule

Registration Desk:

Friday, Oct. 9th 2026
Time (CEST) Hackathon Talks & Workshops
8:30 Doors open & Registration
9:00 Opening
9:15 Project Marketplace
09:30 Hack on Beginners Workshop
11:30 Keynote: Manuel Chakravarty: Accelerate your numeric code
12:30 Lunch
13:30 Hack on Beginners Workshop (continued)
17:30 Official end

Saturday, Oct. 10th 2026
Time (CEST) Hackathon Talks & Workshops
9:00 Doors open
9:30 Hack on (Talk) David Binder: Past, Present and Future of the Haskell Language Report
10:30 Hack on
11:30 Keynote: Ziyang Liu: The Well-Compiled Haskeller
12:30 Lunch
13:30 Hack on
14:30 Hack on (Talk) Niko Pachuashvili: Triage: Or, How I Finally Got Away With Haskell in Anger
15:30 Hack on
17:30 Official end

Sunday, Oct. 11th 2026
Time (CEST) Hackathon
9:00 Doors open
09:30 Hack on
10:00 Bavarian Breakfast
12:00 Keynote: Dominik Schrempf: Compiling C to Haskell – How hs-bindgen Translates C Headers
13:00 Hack on
14:30 Project presentations
17:00 Doors close

Programme

Keynote

Accelerate your numeric code

Manuel Chakravarty

Accelerate is a library to achieve high performance for numeric algorithms (such as those found in graphics, simulations, and machine learning) on multicore CPU and GPU systems. Accelerate doesn’t achieve this by forcing you to write low-level monadic code, but by encouraging high-level purely functional code.

You guessed it. There is a price to pay. In Accelerate, you need to write your numeric array algorithms in an embedded language. That language is a subset of Haskell designed to facilitate high-performance data parallel algorithms. The rest of your program is still plain Haskell.

Accelerate comes with custom backends that translate code written in the embedded language into highly optimised machine code. That code gets efficiently scheduled onto multicore CPU and GPU systems by a custom runtime system.

In this talk, I like to achieve three goals: (1) I want to enable you to use Accelerate to implement numeric algorithms; (2) I want to provide a high-level outline of how Accelerate works; and (3) I want to encourage you to use Accelerate or even contribute to it. The first goal is in reach, even for beginning Haskell users. For the second goal, we will have to dive deeper, but I’ll keep it accessible with examples and thorough explanations. And finally, to use Accelerate effectively, it is more important to understand the algorithm that you want to implement than to be a Haskell expert.

Keynote

Compiling C to Haskell – How hs-bindgen Translates C Headers

Dominik Schrempf

C has a library for everything, and those libraries are fast, battle-tested, and maintained by somebody else. Reaching them from Haskell is the hard part: a Haskell-native rewrite is a project of its own, and hand-writing bindings is tedious and error-prone. hs-bindgen automatically generates those bindings for you.

In this talk, we explore the vision and the architecture behind hs-bindgen: a compiler whose source language is C headers and whose target is Haskell modules. We discuss some challenges of reconciling C's low-level memory model with Haskell's rich type system. I hope to convince you that using a C library from Haskell is less like a project of its own and more like an afternoon's work.

Keynote

The Well-Compiled Haskeller

Ziyang Liu

As Haskell developers, we love to talk about equational reasoning, type safety, compositionality, parametricity, and so on. These are great for reasoning about what the program computes, and they rest on a semantics that deliberately abstracts away many of the things compilers do. But they say much less about many concerns that matter in practice: how fast a program runs, what it allocates, why an optimization did or didn’t fire, or why the compiler is producing a baffling error.

This talk argues that a good understanding of your compiler can make you a much better functional programmer. Through a series of examples, including some surprising ones, we’ll see how looking past the source language can sharpen our intuition, challenge common assumptions, and help us write better programs.

Talk

Past, Present and Future of the Haskell Language Report

David Binder

In this talk I am going to take a look at how we got to the current Haskell report, how it changed over the decades, and present the work we are currently undertaking to update it. I will present my own ideas on what the role of the language report can be going forward, but we will hopefully also discuss how the language report can fit with the GHC and CLC proposal processes to document and specify the language we love to use.

Talk

Triage: Or, How I Finally Got Away With Haskell in Anger

Niko Pachuashvili

A doctor friend asked me to build a patient scheduling platform. With no team to cover the database, frontend, and UX, AI agents filled the gaps — my first real chance to use Haskell as the primary language for a real application, built around a typed domain model as the AI agent's specification.

Whenever complexity piled up, pushing correctness back into the domain model almost always helped: a sprawl of possible transitions collapsed into a forward-only process through a few states, and whole categories of "can it go back to that state?" bugs simply stopped being askable.

But that strategy has a limit. Two staff claiming the same request at once depends on timing the type checker was never given as input — the model can't rule out what it was never told about.

Takeaway: `Domain.hs` is a real specification for an AI agent — but only as far as the facts it's actually given. Concurrency is where this experiment found that boundary.

Contact

Want to keep in touch and receive updates about MuniHac? We have an account , a mailing list, and a Slack workspace.

You can reach us via email: munihac@tngtech.com.

Each participant will retain ownership of any and all intellectual and industrial property rights to his or her work created or used during the Hackathon.