sig
  exception Out_of_bounds
  type t
  val length : Zed_lines.t -> int
  val count : Zed_lines.t -> int
  val of_rope : Zed_rope.t -> Zed_lines.t
  val empty : Zed_lines.t
  val line_index : Zed_lines.t -> int -> int
  val line_start : Zed_lines.t -> int -> int
  val append : Zed_lines.t -> Zed_lines.t -> Zed_lines.t
  val insert : Zed_lines.t -> int -> Zed_lines.t -> Zed_lines.t
  val remove : Zed_lines.t -> int -> int -> Zed_lines.t
  val replace : Zed_lines.t -> int -> int -> Zed_lines.t -> Zed_lines.t
end