{"guid":"36f133c3-fe79-453f-a103-d3e28c3551a0","title":"io-sim: testing, simulating, and prototyping concurrent programs in Haskell","subtitle":null,"slug":"bob2022-concurrent-programs-in-haskell-kant","link":"https://bobkonf.de/2022/kant.html","description":"We present applications of the Haskell library\n\tio-sim. This library provides type classes with concurrency\n\tprimitives that can either be run in IO, or executed in\n\tsimulation. The library has been developed to help with\n\tQuickCheck-style property based testing of concurrent code,\n\twhere the determinism of the simulations is helpful to get\n\tminimal failing test cases. Subsequently, it has also turned\n\tout to be quite useful for prototyping distributed systems,\n\tgetting performance estimates and prediction points of\n\tcongestion before starting a full implementation.\n\t\n\n\n\t","original_language":"eng","persons":["Philipp Kant"],"view_count":34,"promoted":false,"date":"2022-03-11T12:35:00.000+01:00","release_date":"2022-09-05T00:00:00.000+02:00","updated_at":"2025-11-02T06:15:03.291+01:00","tags":["bob2022","110","2022","Talk","BOB","BOBKonferenz"],"length":1896,"duration":1896,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2022/110-36f133c3-fe79-453f-a103-d3e28c3551a0.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2022/110-36f133c3-fe79-453f-a103-d3e28c3551a0_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2022/110-36f133c3-fe79-453f-a103-d3e28c3551a0.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2022/110-36f133c3-fe79-453f-a103-d3e28c3551a0.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2022-concurrent-programs-in-haskell-kant","url":"https://api.media.ccc.de/public/events/36f133c3-fe79-453f-a103-d3e28c3551a0","conference_title":"BOB Konferenz 2022","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022","related":[],"recordings":[{"size":137,"length":1896,"mime_type":"video/webm","language":"eng","filename":"bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2022-09-05T14:19:07.990+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/webm-hd/bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/61488","event_url":"https://api.media.ccc.de/public/events/36f133c3-fe79-453f-a103-d3e28c3551a0","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":64,"length":1896,"mime_type":"video/webm","language":"eng","filename":"bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2022-09-05T14:06:05.667+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/webm-sd/bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/61480","event_url":"https://api.media.ccc.de/public/events/36f133c3-fe79-453f-a103-d3e28c3551a0","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":17,"length":1896,"mime_type":"audio/opus","language":"eng","filename":"bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2022-09-05T14:04:03.878+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/opus/bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_opus.opus","url":"https://api.media.ccc.de/public/recordings/61478","event_url":"https://api.media.ccc.de/public/events/36f133c3-fe79-453f-a103-d3e28c3551a0","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":49,"length":1896,"mime_type":"video/mp4","language":"eng","filename":"bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2022-09-05T14:03:04.620+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/h264-sd/bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_sd.mp4","url":"https://api.media.ccc.de/public/recordings/61477","event_url":"https://api.media.ccc.de/public/events/36f133c3-fe79-453f-a103-d3e28c3551a0","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":28,"length":1896,"mime_type":"audio/mpeg","language":"eng","filename":"bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2022-09-05T14:02:04.379+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/mp3/bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/61476","event_url":"https://api.media.ccc.de/public/events/36f133c3-fe79-453f-a103-d3e28c3551a0","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"},{"size":102,"length":1896,"mime_type":"video/mp4","language":"eng","filename":"bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2022-09-05T13:42:12.627+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2022/h264-hd/bob2022-110-eng-io-sim_testing_simulating_and_prototyping_concurrent_programs_in_Haskell_hd.mp4","url":"https://api.media.ccc.de/public/recordings/61463","event_url":"https://api.media.ccc.de/public/events/36f133c3-fe79-453f-a103-d3e28c3551a0","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2022"}]}