review
ex1-ex2
tests work
ex3
looks good, there is no explanation to what a block is though.
General
IfThenElse should return a unit type if there is no else statement, also you should typecheck the else block if it exists.
Currently it passes if you put 23 + false in the else.
Check for an optional else block like this
match e { Some(e) => todo!(), None => todo!(), }
Edited by Vilestad, Josef