Optimizer should not care if the instruction tree is right- or left-combed
Description
Steps to reproduce
Optimize { DUP; CAR; DIP CDR; DROP }
, first with a right-combed tree of instructions, and then with a left-combed tree:
optimize @Stack1Pair @Stack1 (DUP :# (CAR :# (DIP CDR :# DROP))) @?= DUP :# CAR :# DROP :# CDR
optimize @Stack1Pair @Stack1 (((DUP :# CAR) :# DIP CDR) :# DROP) @?= UNPAIR :# DROP
Expected behaviour
Expected them to produce the same output
Actual behaviour
They produce different sequences.
Environment
- Tested on !822 (merged)
Edited by Diogo Castro