
On Mon, Jan 4, 2010 at 6:51 AM, Maciej Piechotka
About comonad - not exactly as every comonad is copointed and the only possible way is extract Empty = _|_
I think this module could be cleaned up by disallowing empty lists. You have this nice semantic property that "every clist has a focus", but when you add empty you have to add "unless it's empty". focus returns a Maybe, isEmpty is necessary. I mean, it could be that your use case requires empty clists and would be uglier without empty, but think about it. I find in Haskell that simplicity breeds simplicity; i.e. I'm willing to wager that whatever algorithm you are using clist for will actually be cleaner if you got rid of empty and modify the algorithm accordingly. We shall see though... Luke