sig
  type slice_finish_t = EndOfList | EndingOffset of int | Position of int
  type slice_t = int * Slice.slice_finish_t
  val slice_end : int
  val slice_of_pair : int * int -> Slice.slice_t
  val string_slice : string -> Slice.slice_t -> string
  val list_slice : 'a list -> Slice.slice_t -> 'a list
  val array_slice : 'a array -> Slice.slice_t -> 'a array
  val generic_slice :
    ('-> int -> int -> 'a) -> ('-> int) -> '-> Slice.slice_t -> 'a
end