[unrelated] Use loop operator on call bindings
[unrelated] specify children as ordered to test preservation
[unrelated] recurse for root binding, use isLoop, tidy up