Another mildly embarrassing fix

Assignments didn't typecheck their value.
Implemented If & While