{"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":[{"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","label":"eng 1080p","size":102,"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"},{"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","label":"eng","size":29,"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"},{"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","label":"eng","size":17,"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"},{"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","label":"eng 576p","size":65,"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"},{"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","label":"eng 1080p","size":138,"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"},{"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","label":"eng 576p","size":50,"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"}]}