In parseStmt, there is a big if-else branching part to match the stmt to the right alternative. This is very error-prone, becuase we rely on the programmer to set the alternative number to identify the subtype. If a wrong alt. num is set, boom, type error during runtime. A better solution is to have the run time system to take care of type-checking, instead of checking type number during runtime by the programmer, so use polymorphism.