Expression evaluation and type checker