# sequential-index: Sequential index numbers between 0.0 and 1.0 that allow arbitrarily inserting new numbers in between (for special containers).

[ bsd3, data, library ] [ Propose Tags ]

Sequential index numbers between 0.0 and 1.0 that allow arbitrarily inserting new numbers in between. They can possibly used for disk-based and other special containers, where adding a new element without changing the indexes of the other elements is important. Conceptually, SequentialIndex denotes a path to an element in an imaginary binary tree. However, leafs can only be on the right side of their parent. I.e. the path must end with a 1 (or be the path to the root node, 0.0). 1.0 denotes the invalid node.

Versions 0.0, 0.1, 0.2, 0.2.0.1 base (>=4.2.0.0 && <5), bytestring (>=0.9.1.5 && <0.10) [details] BSD-3-Clause Copyright (C) 2011 Aristid Breitkreuz Aristid Breitkreuz aristidb@googlemail.com Data https://github.com/aristidb/sequential-index by AristidBreitkreuz at Thu Feb 24 02:32:49 UTC 2011 NixOS:0.2.0.1 1579 total (17 in the last 30 days) (no votes yet) [estimated by rule of succession] λ λ λ Docs uploaded by userBuild status unknown Hackage Matrix CI

## Modules

[Index]

#### Maintainer's Corner

For package maintainers and hackage trustees

[back to package description]
Sequential index numbers between 0.0 and 1.0 that allow arbitrarily inserting new numbers in between. They can possibly used for disk-based and other special containers, where adding a new element without changing the indexes of the other elements is important.

Conceptually, SequentialIndex denotes a path to an element in an imaginary binary tree, with a '1' at the end. Except for 0.0 and 1.0, which are logically on the left or on the right of the entire tree.

So logically, the tree looks roughly like this:

0.0                          1.0
/
/----------/
0.1
/ \
/--/   \--\
/           \
0.01         0.11
/ \          / \
0.001   0.011     ...

Note that 0.0 is not connected to any other node, but it is still logically smaller than all nodes.