1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
(* SPDX-License-Identifier: AGPL-3.0-or-later *)
(* Copyright © 2021-2024 OCamlPro *)
(* Written by the Owi programmers *)
(** named values (fields) *)
type 'a t =
{ values : 'a Indexed.t list
; named : int String_map.t
}
let empty = { values = []; named = String_map.empty }
let fold f v acc =
List.fold_left
(fun acc v -> f (Indexed.get_index v) (Indexed.get v) acc)
acc v.values
let map f v =
let values = List.map f v.values in
{ v with values }