Haskell equations, thirty-eight years later
summary
Proposal introduces a compact syntax that makes equation groups unordered unless annotated with a trailing otherwise keyword, so order only matters when explicitly marked; compiler can desugar overlaps by inserting a lazy meet class operation to compare results and preserve laziness for infinite structures. Notes include a required pragma for compatibility, interactions with pattern‑matching order that can change strictness and introduce bottom (runtime crashes), and alternatives (Agda/ADA style non‑overlap or explicit parallel racing). This is sketched and debated, not adopted.
AI-written summary · about
chapters (16)
- 0:00Welcome
- 1:06Orwell’s equation order
- 3:17Overlapping equations
- 4:43Proposal for otherwise
- 6:50Hughes’ feedback
- 9:42Laziness and pattern order
- 13:33Restricting overlap in Agda
- 15:05Q&A: Parallel or and stable
- 17:34Q&A: Or patterns
- 18:14Q&A: Runtime crashes vs safety
- 19:20Q&A: Equation order trade-offs
- 20:25Q&A: Equality checks semantics
- 21:48Q&A: Pattern matching design
- 23:58Q&A: Parallel or implementation
- 25:48Q&A: Hardware limitations
- 26:55Closing
related talks
02h 38mLazy Evaluation
17mTowards Generic Higher-Order Unification Implementations in Haskell
30mMore Fixpoints!
59mHaskell Design Patterns for Genericity & Asynchronous Behavior
48mOpening Keynote
20mTowards Generic Type Checking Implementations in Haskell via Second-Order Abstract Syntax
27mWith or Without You: Programming with Effect Exclusion
42mMonoidal Parsing
