 He believes this is advantageous, because what he calls mandatory type systems make languages less expressive and code more fragile.The requirement that types do not affect the semantics of the language is challenging to fulfill; for example, constructs like type-based overloading are disallowed.In practice, pluggable type systems are variously called optional typing, type hinting, type annotations or gradual type checking.