1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
open StdLabels let internal_path_id = ref 0 type t = { id : int ; path: Path.Fixed.t ; back: Path.Fixed.t } let get_id () = let id = !internal_path_id in incr internal_path_id; id let find : t list -> int -> t option = fun ts id -> List.find_opt ts ~f:(fun p -> p.id = id)