The walk of the nodes that Feel.Backend.Interpreter runs, as the text of a module that is made twice:
Feel.Backend.Interpreter.Plain, the walk of a run (Feel.Backend.Interpreter.run/3), which tells nothing of the nodes it makes.Feel.Backend.Interpreter.Monitored, the walk of a monitored run (Feel.Backend.Interpreter.run_monitored/4,Feel.Paranoid, D-159), which tells a function of the node and its value the value of each node as it is made.
use Feel.Backend.Interpreter.Walk, monitored: false | true defines eval/3, the evaluation of a node, and what it
needs. The two are one text so that the run without a monitor is the run it was and not a run that asks at each node
whether there is one: the question was a match on a field of Feel.Runtime.Env at each of the nodes, which is about
7 ns for each, 3 to 14% of a run of a few operations on names, and the count of reductions does not see it (it is the
same for both). What differs is in plain/0 and monitored/0: eval/3, and logic_operands/5 and between_high/5,
which say how an operand that is read under a condition is evaluated.
A new kind of node is a clause of value_of/3 here, and it is in both walks.