Type checking, phase 2.2, compilable