types and static semantic analysis 402997