Splits the maximal EXTEND chain at the top of op off its core, the binds coming back in evaluation order.
op
The transformation context, for collecting the variables of an expression
The operation to peel
its core and the binds above it, innermost first
Extend1(Extend2(A)) -> {core: A, binds: [Extend2, Extend1]} Copy
Extend1(Extend2(A)) -> {core: A, binds: [Extend2, Extend1]}
Splits the maximal EXTEND chain at the top of
opoff its core, the binds coming back in evaluation order.