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

LTS Haskell 22.29:
Stackage Nightly 2024-07-13:
Latest on Hackage:

See all snapshots rope-utf16-splay appears in

BSD-3-Clause licensed by Olle Fredriksson
Maintained by [email protected]
This version can be pinned in stack with:rope-utf16-splay-,2034
Depends on 2 packages(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 -


  • Support text-2.0 and up without backward compatibility

  • Add codeUnitsRowColumn function

  • 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