Also I think using English named methods is more explicit than obscure operators:

s.update(feature_set(node['left']))