This module implements a deterministic, rectifying variant on Dijkstra's guarded commands. Each named step is passed two blocks: an "ensure" block that defines a test for a necessary and sufficient condition of the step, and a "using" block that will cause that condition to obtain. WWW: https://metacpan.org/release/Commands-Guarded