io-sim: testing, simulating, and prototyping concurrent programs in Haskell

Philipp Kant

Playlists: 'bobkonf2022' videos starting here / audio

We present applications of the Haskell library
io-sim. This library provides type classes with concurrency
primitives that can either be run in IO, or executed in
simulation. The library has been developed to help with
QuickCheck-style property based testing of concurrent code,
where the determinism of the simulations is helpful to get
minimal failing test cases. Subsequently, it has also turned
out to be quite useful for prototyping distributed systems,
getting performance estimates and prediction points of
congestion before starting a full implementation.