Module Jenga_lib.Dep

Dep.t is the central type of jenga's API, supporting both the description of dependencies and computing dependencies with arbitrary dependencies. See documentation for individual items in api.mli.

include module type of Dep_type
type 'a cached_exec = ('a * Db.Proxy_map.t) Builder.t
type 'a cached_reflect = ('a * Path.Set.t) 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 : Action.t t ‑> string t
| Alias : Alias.t ‑> unit t
| Path : Path.t ‑> unit t
| Group_dependencies : 'a t ‑> 'a t
| Source_if_it_exists : Path.t ‑> unit t
| Contents : Path.t ‑> string t
| Reflect_path : Path.t ‑> Reflected.Trip.t option t
| Reflect_alias : Alias.t ‑> Path.Set.t t
| Reflect_putenv : (string * string option) list t
| Buildable_targets : Path.t ‑> Path.Set.t t
| Source_files : Path.t ‑> Path.Set.t t
| Glob_listing_OLD : Fs.Glob.t ‑> Path.Set.t t
| Glob_listing : Fs.Glob.t ‑> Path.Set.t t
| Glob_change_OLD : Fs.Glob.t ‑> unit t
| Glob_change : Fs.Glob.t ‑> unit t
| Var : 'a 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
val return : 'a ‑> 'a t
val bind : 'a t ‑> f:('a ‑> 'b t) ‑> 'b t
val map : 'a t ‑> ('a ‑> 'b) ‑> 'b t
val both : 'a t ‑> 'b t ‑> ('a * 'b) t
val all : 'a t list ‑> 'a list t
val all_unit : unit t list ‑> unit t
val cutoff : equal:('a ‑> 'a ‑> bool) ‑> 'a t ‑> 'a t
val deferred : (unit ‑> 'a Async.Deferred.t) ‑> 'a t
val memoize : name:string ‑> 'a t ‑> 'a t
val action : Action.t t ‑> unit t
val action_stdout : Action.t t ‑> string t
val alias : Alias.t ‑> unit t
val path : Path.t ‑> unit t
val getenv : 'a Var.t ‑> 'a t
val group_dependencies : 'a t ‑> 'a t
val source_if_it_exists : Path.t ‑> unit t
val contents : Path.t ‑> string t
val contents_cutoff : Path.t ‑> string t
val fs_glob_listing : Fs.Glob.t ‑> Path.t list t
val fs_glob_change : Fs.Glob.t ‑> unit t
val subdirs : dir:Path.t ‑> Path.t list t
val file_exists : Path.t ‑> bool t
val file_existence : Path.t ‑> unit t
val buildable_targets : dir:Path.t ‑> Path.t list t
val source_files : dir:Path.t ‑> Path.t list t
val glob_listing : Fs.Glob.t ‑> Path.t list t
val glob_change : Fs.Glob.t ‑> unit t
module List : sig ... end