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