Db contains types which will be stored persistently, so jenga doesn't need to rerun
all the actions on restart.
This is different from make which does not need persistent state, because instead
of storing the knowledge that dependencies+action produced targets, it uses timestamps
dependencies > timestamps of targets to claim that targets need to be recreated, and
it doesn't even make record the dependency on the action.
Most types do not expose bin_ios because there is some sharing in the serialized
format across values (see With_index), and so they cannot be serialized
independently.
module Kind : sig ... endmodule Mtime : sig ... endmodule Stats : sig ... endmodule Digest : sig ... endmodule Listing : sig ... endmodule Glob : sig ... endmodule Pm_key : sig ... endmodule Proxy : sig ... endmodule Proxy_map : sig ... endmodule Sandbox_kind : sig ... endmodule Save_proxy : sig ... endmodule Process_proxy : sig ... endmodule Action_proxy : sig ... endmodule Rule_proxy : sig ... endmodule Output_proxy : sig ... endval create : unit ‑> tval digest_cache : t ‑> (Stats.t * Digest.t) Jenga_lib.Path.Table.tval generated : t ‑> Jenga_lib.Path.Set.t Jenga_lib.Path.Rel.Table.tval ruled : t ‑> Rule_proxy.t Jenga_lib.Path.Rel.Table.tval actioned : t ‑> Output_proxy.t Action_proxy.Table.tmodule With_index : sig ... end with type outer_t := t