As its name implies, the OCaml Rope library implements the
datastructure  (with some small variations).
String module functions
are implemented; regular expressions are planned (help
Here is an example use of
Rope in the
interactive toploop (notice the special printer to
conveniently display ropes):
For a complete description of the functions, see the interface
# #load "rope.cma";; # #install_printer Rope.Rope_toploop.printer;; # let ( ^ ) = Rope.concat2;; val ( ^ ) : Rope.t -> Rope.t -> Rope.t = <fun> # let r = Rope.of_string "Hello" ^ Rope.of_string " " ^ Rope.of_string "world!";; val r : Rope.t = "Hello world!" # Rope.length r;; - : int = 12
Rope.mli. If you have questions, suggestions, bugs,... you can contact me by email.
The code is released under the GNU Lesser General Public License (LGPL) with the same special exception as for the OCaml standard library (see the file LICENSE for more details).
 Hans Boehm, Russ Atkinson, Michael Plass, "Ropes: an alternative to strings", Software Practice and Experience 25, vol. 12 (1995), pp. 1315-1330.