compile-time-type-checking