LinearSplit (hackage): The LinearSplit module implements partitioning the sequence of items to the subsequences in the order given. The items can be splitted using greedy heuristic or using the linear partition algorithm to minimize the maximum cost over all ranges (see the 'The Algorithm Design Manual' by Steven S. Skiena..).  The library can be used to balance the work across processors to minimize the run time. For the library usage take a look in examples/Splitter.hs.
Keywords: algorithms|bsd3|library