A substitute for the conky part in my $ conky | dzen status bar. It's practically a learning exercise.
I was inspired by posts like this one [1] to give the free monad a spin and after ~300 lines i'm almost done. But then I found other posts that talk about free and cofree [2] that I still can't really understand so I guess there still is some room for improvement.