Limiting side-effects of applications at compile-time
summary
Haskell code uses the type system and monadic contexts to restrict which effects are allowed so an application can be bound to three effects (console output, a specific website via a hardcoded base URL, and timestamps) and nothing else. The design uses type classes as interfaces and recursive effect constraints so any branch that tries unauthorized IO fails to compile. The build enforces compile-time enforcement (with caveats about unsafe compiler escapes), letting teams outsource code while ensuring only the specified effects can be produced.
AI-written summary · about
chapters (10)
- 0:00Intro
- 0:29Overview
- 3:14Matching of expectations
- 4:50Effects vs Purity
- 8:55What is happening? Data leaks
- 10:32Cybersecurity
- 12:01Bridge over Troubled Water
- 17:52Code example
- 20:53Design and outsource
- 23:31Summary
related talks
01h 04mHaskell - A Peek Inside the Ivory Tower
39mDesigning software with effects systems
33mRethinking Effects with Effect Systems
25mScale By The Bay 2018 Unconference: Joe Kachmar
14mFundamentalist Functional Programming
50mFunctional Programming with Effects
46mFunctional effects in perspective
43mFunctional Programming with Effects
