Module Core_profiler_offline_tool.Path

type 'a point =
| Direct_point of 'a
| Point of 'a
val sexp_of_point : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a point -> Ppx_sexp_conv_lib.Sexp.t
val point_of_sexp : (Ppx_sexp_conv_lib.Sexp.t -> 'a) -> Ppx_sexp_conv_lib.Sexp.t -> 'a point
val compare_point : ('a -> 'a -> int) -> 'a point -> 'a point -> int
type 'a t = {
first : 'a point;
rest_rev : 'a point list;
last : 'a;
}
include Ppx_sexp_conv_lib.Sexpable.S1 with type 'a t := 'a t
type 'a t
val t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
module I : sig ... end
val string_t_of_string : string -> string t option
val string_t_to_string : string t -> string
val examples : string t list
val readme : string Core.Lazy.t
val lookup_ids : string t -> Util.Name_map.group -> Core_profiler.Probe_id.t t
val lookup_names : Core_profiler.Probe_id.t t -> Reader.Header.t -> string t
val id_t_to_string : Core_profiler.Probe_id.t t -> ?⁠with_group:string -> Reader.Header.t -> string
val first : 'a t -> 'a

Get t.first, discarding whether the first point is Direct_point or a Point

val last : 'a t -> 'a