Move Over Free Monads: Make Way for Free Applicatives!
summary
Argues that free applicatives trade some monadic power for a static, inspectable program tree that lets tooling generate things you otherwise can’t: built a Scala DSL (Scalaz’s free app) for application configuration that produces a generated man page via genHelp and a JSON decoder via genDecode (using Argonaut). The library compiles and examples are on GitHub; it works for parsing/codecs/autocomplete but cannot express runtime-dependent sequential logic the way free monads can.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 3:03Free monads benefits
- 7:23Free monads limitations
- 10:54Free applicatives introduction
- 13:46Free applicatives with config
- 18:55DSL for config with applicatives
- 21:51Help docs from config
- 23:35JSON decoders with applicatives
- 26:44Applicative transformation challenges
- 28:35Finally tagless for applicatives
- 33:14Finally tagless applicative DSLs
- 36:47Evaluating finally tagless programs
- 37:53Applicative expressive power
- 42:11Free structures comparison
- 43:15Summary and resources








