A general sequence representation with arbitrary
annotations, for use as a base for implementations of
various collection types, with examples, as described
in section 4 of
Ralf Hinze and Ross Paterson,
"Finger trees: a simple general-purpose data structure",
Journal of Functional Programming 16:2 (2006) pp 197-217.
http://staff.city.ac.uk/~ross/papers/FingerTree.html
For a tuned sequence type, see Data.Sequence in the
containers package, which is a specialization of
this structure.