sig
  type 'a t = 'List_zipper.t = { l : 'a list; r : 'a list; }
  val create : 'a list -> 'a list -> 'a t
  val drop_before : 'a t -> ('a * 'a t) option
  val drop_after : 'a t -> ('a * 'a t) option
  val drop_all_before : 'a t -> ('a list * 'a t) option
  val drop_all_after : 'a t -> ('a list * 'a t) option
  val insert_before : 'a t -> '-> 'a t
  val insert_after : 'a t -> '-> 'a t
  val previous : 'a t -> 'a t option
  val next : 'a t -> 'a t option
  val replace_left : 'a t -> 'a list -> 'a t
  val replace_right : 'a t -> 'a list -> 'a t
end