module Zip:sig..end
type t
len there is len + 1 positions.val make_f : Zed_rope.rope -> int -> tmake_f rope pos creates a new zipper pointing to positon
pos of rope.val make_b : Zed_rope.rope -> int -> tmake_f rope pos creates a new zipper pointing to positon
length rope - pos of rope.val offset : t -> intval next : t -> CamomileLibrary.UChar.t * tnext zipper returns the code point at the right of the
zipper and a zipper to the next position. It raises
Out_of_bounds if the zipper points to the end of the
rope.val prev : t -> CamomileLibrary.UChar.t * tprev zipper returns the code point at the left of the
zipper and a zipper to the previous position. It raises
Out_of_bounds if the zipper points to the beginning of the
rope.val move : int -> t -> tmove n zip moves the zipper by n characters. If n is
negative it is moved to the left and if it is positive it is
moved to the right. It raises Out_of_bounds if the result
is outside the bounds of the rope.val at_bos : t -> boolat_bos zipper returns true iff zipper points to the
beginning of the rope.val at_eos : t -> boolat_eos zipper returns true iff zipper points to the
end of the rope.val find_f : (CamomileLibrary.UChar.t -> bool) -> t -> tfind_f f zip search forward for a character to satisfy
f. It returns a zipper pointing to the left of the first
character to satisfy f, or a zipper pointing to the end of
the rope if no such character exists.val find_b : (CamomileLibrary.UChar.t -> bool) -> t -> tfind_b f zip search backward for a character to satisfy
f. It returns a zipper pointing to the right of the first
character to satisfy f, or a zipper pointing to the
beginning of the rope if no such character exists.val sub : t -> int -> Zed_rope.ropesub zipper len returns the sub-rope of length len pointed
by zipper.val slice : t -> t -> Zed_rope.ropeslice zipper1 zipper2 returns the rope between zipper1
and zipper2. If zipper1 > zipper2 then this is the same as
slice zipper2 zipper1.
The result is unspecified if the two zippers do not points to
the same rope.