extended type checking and code generation