jenga

Industrial strength, full-featured build system
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library jenga
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:( 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.