1. A method for handling more than one definition of a same data type, during compilation of managed code for a host application, comprising: loading a set of computer-usable instructions onto a computer system's memory, which when executed cause a compiler on the computer system to: create local copies of authoritative data types from a code library for respective local assemblies of managed code being compiled, comprising: marking the local copy with a local identifier attribute; copying an authoritative type identifier from the authoritative data type to the local copy; copying merely functions and properties of the authoritative data type used in the local assembly from the authoritative data type to the local copy; and resolving an authoritative data type for a requested data type if a local assembly requests a data type from a compiled user assembly, comprising: determining if a local copy of an authoritative data type is requested from the compiled user assembly by detecting the local identifier attribute; retrieving an authoritative data type with a same authoritative type identifier as the requested local data type from the code library if a local copy of an authoritative data type is requested from the compiled user assembly; and creating a local copy of the retrieved authoritative data type with a same authoritative type identifier as the requested local data type from the user assembly; and emit respective user assemblies that comprise merely local copies of one or more respective authoritative data types; and executing the set of computer-usable instructions on the computer system.