working on http://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html