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.