private IValue traverseNodeOnce(IValue subject, CaseBlockList casesOrRules,
DIRECTION direction, PROGRESS progress, FIXEDPOINT fixedpoint, TraverseResult tr) {
IValue result;
INode node = (INode)subject;
if (node.arity() == 0 && !(node.mayHaveKeywordParameters() && node.asWithKeywordParameters().hasParameters()) ){
result = subject;
}
else {
IValue args[] = new IValue[node.arity()];
Map<String, IValue> kwParams = null;