Partial port of FingerTree implementation in http://andrew.gibiansky.com/blog/haskell/finger-trees/ written in Swift