peer-review
It is nicely commented and the answers are given with good explanation. There are however a few pseudo code instructions left. I know bal is in a bit of a grey zone but it can be exchanged for totally no-pseudo instructions. There is also 4 move instructions which are pseudo instructions at lines 215, 247, 285 and 351. Otherwise very well done