Reasoning about types and code
summary
A practical roadmap for reasoning about types and code: derive when a function is implementable (example: two signatures where F impossible, G implementable), prove flatMap cannot exist for certain business-shaped types and why Future + Either composition fails in Scala, rewrite code as algebraic type notation to expose an existential quantifier, and show that seemingly unprovable constructions like the selection monad transformer admit a five-line proof once the right symbolic notation is used.
AI-written summary · about
chapters (6)
- 0:00Introduction to reasoning
- 3:45Mathematical techniques in FP
- 9:53Notation for types and code
- 14:18Free monad equivalence proofs
- 19:04Advanced monad proofs
- 22:18Book resources and Q&A
related talks
52mWhat logic can teach us, Scala programmers
44mTelling the Truth with Types
01h 03mIntro to FP in Scala: Exploring a Toolbox for Solving Problems - Part 4 of 6
59mIntro to FP in Scala: Exploring a Toolbox for Solving Problems - Part 3 of 6
41mThe Dialectics of Type-Level Programming
42mA pragmatic introduction to Category Theory
52mFunctional Patterns in Domain Modeling
52mCategory Theory Through Functional Programming (part 1/3)
