BSD-3-Clause licensed by Christian Hoener zu Siederdissen, 2016-2021
Maintained by [email protected]
This version can be pinned in stack with:DPutils-,3820

Module documentation for

github action: master


Small set of utility functions. Currently centered around dynamic programming.

Math.TriangularNumbers provides indexing into upper triangular tables. With back and forth between the index pair and the linear index.

Data.Paired.Vector provided rectangular and upper-triangular pairing of elements from a vector.

Data.Paired.Foldable is a more powerful generalization of such pairing for any foldable container. We try to only retain elements that will be needed for the pairing, while others are being filtered out.

Pipes.Parallel provides some simple tools for parallelisation of tasks with the pipes eco-system.


Christian Hoener zu Siederdissen
Leipzig University, Leipzig, Germany
[email protected]


  • Data.Ord.Fast provides fast versions of min/max (until GHC catches up)
  • Data.Info for “hand-written” Show-like instances to be used in an interactive environment. The info might, for example, return the length, beginning, and end of a string.

  • DP.Backtraced.Core provide a “core” system for backtraces in DP algorithms, splitting out individual tapes

  • Data.ByteString.Streaming.Split with generic splitting operations for the bytestring-streaming library

  • Pipes.Split.ByteString splits a bytestring based on a given pattern (example usage in tests/properties.hs)

  • Math.TriangularNumbers collects functions for triangular numbers and indexing
  • Data.Paired.Foldable for upper triangular pairings [work in progress]
  • renamed modules into new Paired hierarchy
  • helper functions for parallelisation within a pipes pipe

  • initial checkin
  • upper triangular and rectangular combinations