Ropes optimised for updating using UTF-16 code units and row/column pairs.

Version on this page:
LTS Haskell 19.33:
Stackage Nightly 2023-05-28:
Latest on Hackage:

See all snapshots rope-utf16-splay appears in

BSD-3-Clause licensed by Olle Fredriksson
This version can be pinned in stack with:rope-utf16-splay-,2029
Depends on 2 packages(full list with versions):
Used by 2 packages in lts-14.27(full list with versions):

rope-utf16-splay Build Status Hackage

Thick strings optimised for indexing and updating using UTF-16 code units and row/column pairs.

This implementation uses splay trees instead of the usual finger trees, which is faster according to the benchmarks.


Olle Fredriksson -


  • Add splitAtLine function

  • Add rows and columns functions
  • Make Position module internal
  • Add map and intersperse functions
  • Add foldl, foldl', foldr, any, and all functions

  • Rename rowColumnCodePoints to rowColumnCodeUnits
  • Add null function

  • Initial release