B000.GuardSourceBuild operation guards.
A guard ensure that a build operation is allowed to proceed. This means either that:
Note. This module does not access the file system it trusts clients that call Guard.set_file_ready not to lie about its existence on the file system.
The type for build operations guards.
set_file_ready g f indicates to g that file f is ready, i.e. that it exists and is up-to-date.
set_file_never g f indicate to g that file f will never become ready.
allowed g is an operation that is either ready or aborted in g (if any). In the second case the Op.status is Op.status.Aborted.