Code from my talk on comonads from the Melbourne Haskell Users Group