sig
  val normalize : length_fun:('-> int) -> '-> int -> int
  val slice :
    length_fun:('-> int) ->
    sub_fun:('-> pos:int -> len:int -> 'a) -> '-> int -> int -> 'a
  val get_pos_len_exn : ?pos:int -> ?len:int -> length:int -> int * int
  val get_pos_len :
    ?pos:int -> ?len:int -> length:int -> (int * int, string) Result.t
  val ounit_tests : unit -> OUnit.test
end