Everything here makes much more sense than the previous implementation -- I've upped 1.2, which splits up |append|, implements the instances in terms of Monoid, etc.
Also included is |toList| and |toList_| , which are like functions defined in Felipe's earlier email to me. The first returns the cap and values, the second only the values. Last (but not least), some of the |append*| functions are now defined in terms of |appendWith| from Twan van Laarhoven's email. For example, |appendM = appendWith mappend|. On Fri, Jan 8, 2010 at 17:57, Felipe Lessa <felipe.le...@gmail.com> wrote: > Of course, you would have to change your 'empty' package to > include the following law: > > "For every data type implementing Empty and Monoid, > empty should be mempty." "empty" turned out to be a dumb idea -- I had hoped to use it for types which support a NIL value but not appending. Turns out, there's not much point to lists which can't be appended. C'est la vie. > Also, you may want to have CappedList an instance of > Control.Functor.Bifunctor from category-extras: > [...] This is probably a good idea, but, I am nervous about making such a small package depend on the huge category-extras and mtl. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe