CCZipperList Zipper
The pair l, r represents the list List.rev_append l r, but with the focus on r
val empty : 'a tEmpty zipper.
val is_empty : _ t -> boolEmpty zipper? Returns true iff the two lists are empty.
val to_list : 'a t -> 'a listConvert the zipper back to a list. to_list (l,r) is List.rev_append l r.
val to_rev_list : 'a t -> 'a listConvert the zipper back to a reversed list. In other words, to_list (l,r) is List.rev_append r l.
val make : 'a list -> 'a tCreate a zipper pointing at the first element of the list.
Modify the current element, if any, by returning a new element, or returning None if the element is to be deleted.
Insert an element at the current position. If an element was focused, insert x l adds x just before it, and focuses on x.
val is_focused : _ t -> boolIs the zipper focused on some element? That is, will focused return a Some v?
val focused : 'a t -> 'a optionReturn the focused element, if any. focused zip = Some _ iff empty zip = false.
val focused_exn : 'a t -> 'aReturn the focused element, or
Drop every element on the "right" (calling right then will do nothing), keeping the focused element, if any.