Cultivating an Engineering Dialect
summary
PaidRight builds a rules engine where a Rule type has 45 constructors and many recursive cases, so the team chooses solutions that actually reduce work: using GADTs for language-shaped problems, plated for find-and-replace with a two-line instance, traction (thin SQL wrapper) for simple DB access, and deliberately rejects dependent-map in tests. Decisions weigh power versus maintenance cost, and the repo ships an engineering handbook linking canonical resources and a named contact to build an on-ramp.
AI-written summary · about
chapters (12)
- 0:00Talk introduction
- 1:08Haskell adoption problem
- 8:55Learning cliff vs curve
- 10:01Simple Haskell limits
- 11:24Engineering power-to-weight
- 12:26Problem domain decisions
- 13:30Paid Right domain
- 15:19GADTs for rule processing
- 17:46Plated for rule transforms
- 20:53Traction for database
- 21:57Rejecting Dependent Map
- 23:22Summary
related talks
30mILLOGICAL ENGINEERS
01h 24mClojure Katas - Designing Data-Driven DSLs
28mLanguage Support for Property-Based Testing
36mSpam-fighting Infrastructure
26mThe Power of Programs as Data
34mHow I learned to stop worrying and love Functional Design
48mDescribe & Conquer (& Freek)
51mFunctional Programming and Domain Driven Design - a match in Heaven!
