adaptive-containers

Self optimizing container types

http://code.haskell.org/~dons/code/adaptive-containers

Latest on Hackage:0.3

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Don Stewart
Maintained by Don Stewart ([email protected])

Self optimizing polymorphic container types.

Adaptive containers are polymorphic container types that use class associated data types to specialize particular element types to a more efficient container representation. The resulting structures tend to be both more time and space efficient.

A self-optimizing pair, for example, will unpack the constructors, yielding a representation for (Int,Char) requiring 8 bytes, instead of 24.

This difference can be visualized. Consider the expression:

[ (x,y) | x <- [1..3], y <- [x..3] ]

Currently supported adaptive containers: pairs, lists, maybes

Most unboxed element types are supported.