1. A computer storage medium storing computer executable instructions that when executed by a processor provide a unified type system for use with a computer source language and associated components which translate source files written in the computer source language into executable form and execute the translated source files, wherein at least one source file declares a variable using an unboxed value type representation yet passes the variable to a method expecting a boxed value type representation, the unified type system comprising: a first value type representation relating to the unboxed value type representation of the variable; a class object hierarchy comprising a plurality of object classes, wherein at least one of the object classes is a second value type representation relating to the boxed value type representation of the variable, wherein the second value type representation is automatically passed to the method expecting the boxed value type representation; and wherein a trigger located in the source file indicating a required conversion from the unboxed value type representation to the boxed value type representation when it is detected that the method expects the boxed value type representation, wherein as part of translating the source files and executing the translated source files maintaining both the boxed value type representation and the unboxed value type representation.