Certain mostly statically typed languages such as C# and Boo have features[2][3] that instruct the compiler to arrange for type checking of classes to occur at run-time rather than compile time, and include run-time type checking code in the compiled output. One can also implement duck typing in Java using the MethodHandle API[4]