[Haskell-cafe] Re: Data.Ring -- Pre-announce

Luke Palmer lrpalmer at gmail.com
Mon Jan 4 09:17:09 EST 2010


On Mon, Jan 4, 2010 at 6:51 AM, Maciej Piechotka <uzytkownik2 at gmail.com> wrote:
> 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


More information about the Haskell-Cafe mailing list