1. A computer implemented methodology for providing null support for programming language types, comprising: preventing nesting of one nullable type within another type structure at compile time, wherein an instance of the nullable type comprises: an underlying value of a type associated with at least one programming language; and an indicator value that signals when the instance of the nullable type represents null; identifying a nullable type at runtime; and providing runtime support for the nullable type, including converting between an instance of the nullable type and an instance of a reference type, and wherein converting the nullable type to the reference type includes unwrapping the instance of the nullable type, generating a reference to the underlying value when the indicator value signals that the instance of the nullable type does not represent null and generating a null reference when the indicator value signals that the instance of the nullable type represents null.
5. The method of claim 1 , the nullable type supports at least one interface of the type of the underlying value.