talk · community record
Analyzing Functional Programs
Techniques like the Free Monad and Tagless Final allow us to build algebras that abstract Monad choices from our business logic. This abstraction allows unit tests to be run in a simple synchronous Monad while production code can still take advantage of complex asynchronous Monads. What else can we do with this abstracted business logic? In this talk, I'll explore the use of the Gen Monad from Scalacheck to produce random walks over our business logic consisting of the steps taken in our abstract algebras.