Comonad (hopefully a correct one).