generic finger-tree structure (http://staff.city.ac.uk/~ross/papers/FingerTree.html)

#10Add one-sided searches

takeUntil and dropUntil shouldn't be implemented in terms of split. They should instead build only the side of the search result that they're actually going to use.