cofree comonad