summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/zipper.ml1
-rw-r--r--lib/zipper.mli4
2 files changed, 5 insertions, 0 deletions
diff --git a/lib/zipper.ml b/lib/zipper.ml
index 2322a58..30be8eb 100644
--- a/lib/zipper.ml
+++ b/lib/zipper.ml
@@ -87,6 +87,7 @@ let split z =
87 ( { z with after = Sequence.empty }, 87 ( { z with after = Sequence.empty },
88 { z with pos = 0; before = Sequence.empty } ) 88 { z with pos = 0; before = Sequence.empty } )
89 89
90let join z1 z2 = { z1 with after = z2.after }
90let iter_before f z = Sequence.iter ~f z.before 91let iter_before f z = Sequence.iter ~f z.before
91let iter_after f z = Sequence.iter ~f z.after 92let iter_after f z = Sequence.iter ~f z.after
92 93
diff --git a/lib/zipper.mli b/lib/zipper.mli
index c3c79a6..beeb181 100644
--- a/lib/zipper.mli
+++ b/lib/zipper.mli
@@ -145,6 +145,10 @@ val split : 'a zipper -> 'a zipper * 'a zipper
145(** [split z] splits the zipper in two. [([3; 2; 1], [4; 5])] becomes 145(** [split z] splits the zipper in two. [([3; 2; 1], [4; 5])] becomes
146 [([3; 2; 1], []), ([], [4; 5])]. *) 146 [([3; 2; 1], []), ([], [4; 5])]. *)
147 147
148val join : 'a zipper -> 'a zipper -> 'a zipper
149(** [join z1 z2] creates a new zipper using [before z1] and [after z2].
150 [([3; 2; 1], []) ([4; 2], [4; 5])] becomes [([3; 2; 1], [4; 5])]. *)
151
148(** {1 Consuming zippers} *) 152(** {1 Consuming zippers} *)
149 153
150(** Since zippers are based on sequences, iterating over zippers 154(** Since zippers are based on sequences, iterating over zippers