Module Jenga_lib__Dep_type

type 'a cached_exec = ('a * Jenga_lib.Db.Proxy_map.t) Jenga_lib.Builder.t
type 'a cached_reflect = ('a * Jenga_lib.Path.Set.t) Jenga_lib.Builder.t

Dep_type.t is the GADT implementation behind Dep.t. Values of this type are interpreted by jenga's build algorithm.

type 'a t =
| Return : 'a ‑> 'a t
| Map : 'a t * ('a ‑> 'b) ‑> 'b t
| Bind : 'a t * ('a ‑> 'b t) ‑> 'b t
| All : 'a Core.sexp_opaque t list ‑> 'a list t
| Cutoff : ('a ‑> 'a ‑> bool) * 'a t ‑> 'a t
| Deferred : (unit ‑> 'a Async.Deferred.t) ‑> 'a t
| Action_stdout : Jenga_lib.Action.t t ‑> string t
| Alias : Jenga_lib.Alias.t ‑> unit t
| Path : Jenga_lib.Path.t ‑> unit t
| Group_dependencies : 'a t ‑> 'a t
| Source_if_it_exists : Jenga_lib.Path.t ‑> unit t
| Contents : Jenga_lib.Path.t ‑> string t
| Reflect_path : Jenga_lib.Path.t ‑> Jenga_lib.Reflected.Trip.t option t
| Reflect_alias : Jenga_lib.Alias.t ‑> Jenga_lib.Path.Set.t t
| Reflect_putenv : (string * string option) list t
| Buildable_targets : Jenga_lib.Path.t ‑> Jenga_lib.Path.Set.t t
| Source_files : Jenga_lib.Path.t ‑> Jenga_lib.Path.Set.t t
| Glob_listing_OLD : Jenga_lib.Fs.Glob.t ‑> Jenga_lib.Path.Set.t t
| Glob_listing : Jenga_lib.Fs.Glob.t ‑> Jenga_lib.Path.Set.t t
| Glob_change_OLD : Jenga_lib.Fs.Glob.t ‑> unit t
| Glob_change : Jenga_lib.Fs.Glob.t ‑> unit t
| Var : 'a Jenga_lib.Var.t ‑> 'a t
| Memoize : {
name : string;
t : 'a t;
mutable cached_exec : 'a cached_exec option Core.sexp_opaque;
mutable cached_reflect : 'a cached_reflect option Core.sexp_opaque;
} ‑> 'a t
val sexp_of_t : a. ('a ‑> Base.Sexp.t) ‑> 'a t ‑> Base.Sexp.t