let slice ?start ?finish t =
    try Some (slice_exn ?start ?finish t)
    with _ -> None