The debatably Free monad

This is the companion article for this talk.

Free is one of these subjects that seem to fascinate a subset of the FP community, but also one that I feel is poorly taught - mostly because I failed to learn it for so long.

This series of articles tries to provide a slightly different take on the subject, not by explaining how to use Free, but by solving a concrete problem and inventing it along the way. This will hopefully help people who enjoy seeing why something is the way it is rather than be presented with a finished solution and an instruction book.