jenga

Industrial strength, full-featured build system
IN THIS PACKAGE
Module Jenga_lib . Dep
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 -> Ppx_sexp_conv_lib.Sexp.t ) -> 'a t -> Ppx_sexp_conv_lib.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