Module Jenga_lib__Db.Proxy_map.Group

type t

find_or_add t ~unique_id_across_jenga:typ ~unique_f_across_jenga:f computes f (paths t), making sure f is only called once per t. Values for typ and f must be the same for every call of find_or_add for a given t. In particular in the current implementation, passing different ids will raise but passing different functions will probably give you incorrect results.

Note that paths t is shallow, that is it ignores subgroups of t.

val find_or_add : t ‑> unique_id_across_jenga:'a Core.Type_equal.Id.t ‑> unique_f_across_jenga:(Jenga_lib.Path.t list ‑> 'a) ‑> 'a

find_or_add t ~unique_id_across_jenga:typ ~unique_f_across_jenga:f computes f (paths t), making sure f is only called once per t. Values for typ and f must be the same for every call of find_or_add for a given t. In particular in the current implementation, passing different ids will raise but passing different functions will probably give you incorrect results.

Note that paths t is shallow, that is it ignores subgroups of t.