let create ?init ?ensure definition = {
definition;
init =
Option.value init
~default:(Program.shf "echo 'Tool %s: default init'"
(Definition.to_string definition));
ensure =
Option.value_map
ensure
~f:KEDSL.forget_product
~default:(workflow_node nothing
~name:(sprintf "%s-ensured"
(Definition.to_string definition)));
}