At this year’s ZuriHac that will take place 11–13 June 2022, we will once again offer an Advanced Track, comprising two independent workshops about topics related to Haskell. Please do not let the label “Advanced Track” fool you: Both workshops are targeted at wide audiences, and you do not at all have to be a Haskell expert to attend. More about the prerequisites for each session is explained below.

We would be delighted to welcome you at these sessions or to discuss any interesting topics with you at ZuriHac. This year, ZuriHac and therefore the workshops will happen live again. We therefore do not yet know if the workshops will be recorded. We will make the materials available later, though. ZuriHac is free to attend; you can still register. No separate registration for the workshops is required.

If you cannot make it to ZuriHac but are still interested in our courses or other services, check our Training page, Consultancy page, or just send us an email.

Note that the times have been changed.

Armando Santos: IOSim

Saturday, 11 June 2022, 1430–1700 CEST

IOSim is a simulator and drop-in replacement for the IO Monad developed by the networking team at IOHK. The io-sim and io-classes packages enable programmers to write code that can handle both real and simulated IO. Because it exposes a detailed execution trace, which can then be used in property tests, this tool has already proven to be very useful in the context of testing complex components of the ouroboros-network package.

In this workshop, Armando Santos will look at some examples of how to use io-sim and io-classes, as well as how to develop our own programs and use the tool to test and detect faults in the code.

This session should be useful for Haskell programmers of all levels of experience, however attendees should know about IO and ideally have some familiarity with basic concurrency primitives (async is sufficient) and STM.

Andres Löh: An Introduction to Type Systems and Operational Semantics

Sunday, 12 June 2022, 1330–1630 CEST

In this workshop, Andres Löh will introduce some simple type systems, starting from the Simply Typed Lambda Calculus and moving towards System Fω, which forms the basis of GHC’s internal Core language.

We will learn how to read and understand type rules, what desirable properties type systems (should) have, and how to implement a type checker for such systems.

The amount of Haskell knowledge you need in order to participate in this workshop is actually rather small.

Although this session is part of the so-called “Advanced Track,” it is actually rather introductory and will not teach you anything new if you are already familiar with reading papers about type systems. But if you are primarily a user of Haskell and have never really looked at the theoretical foundations, then this session may be just what you have been looking for in order to demystify some of the more theoretically focused papers and blog posts in the Haskell world.