wip: port Haskell's Data.FingerTree