Added proper syntax and preliminary checking for type parameters.
Adding IR construct to support the case-of constructs. And also implemented some basic type checking for the tuple types.