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