11. A computer storage medium having stored thereon computer executable instructions which when executed by a processor in a computer system implement steps for performing static type checking of dynamic languages in an Integrated Development Environment (IDE), the steps comprising: receiving input to the IDE that specifies a supplemental type system to be added to the IDE, the IDE having a base type system corresponding to an object-oriented programming language, the supplemental type system comprising one of an XML data model or a relational data model; attaching elements of the supplemental type system to objects of the base type system such that the objects are associated with a base type and a supplemental type; and in response to receiving user input into a text editor of the IDE, the user input being associated with an object of the base type system, providing visual feedback that is based on the base type of the object as well as the supplemental type associated with the object.
14. The computer storage medium of claim 11 , wherein the elements of the supplemental type system are attached to objects of the base type system using one of the following: one or more namespaces; a compile-time meta-object protocol; one or more phantom types; one or more custom attributes; type inference; or one or more contracts.