Substitutes variables in this node with their bound values in bindings.
bindings
@override Term substitute(Map<Variable, Node>? bindings) => Term(name, arguments.map((arg) => arg.substitute(bindings)));