P3 Done (Except typeInfer Case If)