[Haskell-cafe] What class for splittable data / balanced-fold?

Ryan Newton rrnewton at gmail.com
Sat Sep 28 19:09:06 CEST 2013


Hi all,

We all know and love Data.Foldable and are familiar with left folds and
right folds.  But what you want in a parallel program is a balanced fold
over a tree.  Fortunately, many of our datatypes (Sets, Maps) actually ARE
balanced trees.  Hmm, but how do we expose that?

It seems like it would be nice to have a* standard class t*hat allows you
to split a datatype into roughly even halves, until you get down to the
leaves.  This goes along with Guy Steele's argument that we should use
"append lists" as primitive rather than "cons-lists", and it's why we
added append-lists
within the monad-par
library<http://hackage.haskell.org/package/monad-par-extras-0.3.3/docs/Control-Monad-Par-AList.html>
.

Does this class exist already?  A random google search brought up this
module by the name
Data.Splittable<http://hackage.haskell.org/package/unfoldable-0.2.0/docs/Data-Splittable.html>,
but it's not quite the right thing.

Thanks,
  -Ryan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130928/4d442dee/attachment.htm>


More information about the Haskell-Cafe mailing list