Fiddling with Free Monads.