Compile-Time Type Checking