name: adaptive-containers
version: 0.3
homepage: http://code.haskell.org/~dons/code/adaptive-containers
synopsis: Self optimizing container types
description:
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] ]
.
* /[(Int,Int)]/: A regular list of pairs <http://code.haskell.org/~dons/images/vacuum/tuple-list.png>
.
* /[Pair Int Int]/: An adaptive list of pairs <http://code.haskell.org/~dons/images/vacuum/pair-list.png>
.
* /List (Pair Int Int)/: An adaptive list of adaptive pairs <http://code.haskell.org/~dons/images/vacuum/list-pair.png>
.
Currently supported adaptive containers: pairs, lists, maybes
.
Most unboxed element types are supported.
category: Data
license: BSD3
license-file: LICENSE
author: Don Stewart
maintainer: Don Stewart (dons@galois.com)
cabal-version: >= 1.2.3
build-type: Simple
library
exposed-modules: Data.Adaptive.Tuple
Data.Adaptive.List
Data.Adaptive.Maybe
ghc-options: -O2
-fdicts-cheap
-Wall
ghc-prof-options: -prof -auto-all
extensions: TypeFamilies,
BangPatterns,
MultiParamTypeClasses,
FlexibleContexts,
FlexibleInstances
build-depends: base