Static type checking