sig
type 'a t = 'a list * 'a list
val empty : 'a CCZipper.t
val is_empty : 'a CCZipper.t -> bool
val to_list : 'a CCZipper.t -> 'a list
val to_rev_list : 'a CCZipper.t -> 'a list
val make : 'a list -> 'a CCZipper.t
val left : 'a CCZipper.t -> 'a CCZipper.t
val left_exn : 'a CCZipper.t -> 'a CCZipper.t
val right : 'a CCZipper.t -> 'a CCZipper.t
val right_exn : 'a CCZipper.t -> 'a CCZipper.t
val modify : ('a option -> 'a option) -> 'a CCZipper.t -> 'a CCZipper.t
val insert : 'a -> 'a CCZipper.t -> 'a CCZipper.t
val remove : 'a CCZipper.t -> 'a CCZipper.t
val is_focused : 'a CCZipper.t -> bool
val focused : 'a CCZipper.t -> 'a option
val focused_exn : 'a CCZipper.t -> 'a
val drop_before : 'a CCZipper.t -> 'a CCZipper.t
val drop_after : 'a CCZipper.t -> 'a CCZipper.t
val drop_after_and_focused : 'a CCZipper.t -> 'a CCZipper.t
end