A finger tree is a purely functional tree data structure that gives amortized constant time access to finger (leaves) of the tree. Primarily used in efficiently implementing other functional data structures.