Static Type Checking