A programming language consists of attacks for a wrapper that carries out sets of destructive operations automatically.
 Many production languages provide means to bypass or subvert the type system, trading type safety for finer control over the program's execution (see casting)
 In order to bypass this downside, a number of languages have type loopholes, usually unchecked casts that may be used by the programmer to explicitly allow a normally disallowed operation between different types

