Advanced Type-Checking