(** A named function referenced by a {!Line.t}. [Function] in profile.proto. {!field-name}, {!field-system_name} and {!field-filename} are string-table indices on the wire; this type carries the strings they resolve to. *) type t = { id : int64; (** unique, non-zero identifier (profile.proto field 1). [0L] is reserved and rejected by {!Profile.validate}. *) name : string; (** human-readable name (profile.proto field 2), demangled where the producer can. *) system_name : string; (** name as the system knows it (profile.proto field 3), e.g. a C++ mangled symbol. *) filename : string; (** source file containing the function (profile.proto field 4). *) start_line : int64; (** line of the function's first line in {!field-filename} (profile.proto field 5), [0L] when unknown. *) } (** A function record. *) val equal : t -> t -> bool (** [equal a b] is [true] when every member is equal. *) val pp : t Fmt.t (** [pp ppf t] prints ["# (:)"]. *)