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 memory of a computer system, which when executed cause a compiler on the computer system to: create one or more local copies of one or more authoritative data types from a code library for respective local assemblies of managed code being compiled, comprising: marking a local copy with a local identifier attribute; copying an authoritative type identifier from an authoritative data type to the local copy; copying merely functions and properties of the authoritative data type used in a local assembly from the authoritative data type to the local copy; and if a second local assembly requests a data type from a compiled user assembly, resolving a second authoritative data type for the requested data type, comprising: retrieving the second authoritative data type with a same authoritative type identifier as the requested data type from the code library if a determination is made, by detecting a second local identifier attribute, that a local copy of the second authoritative data type is requested from the compiled user assembly; and creating a local copy of the retrieved second authoritative data type; and emit one or more user assemblies that respectively comprise merely one or more local copies of one or more authoritative data types; and executing the set of computer-usable instructions on the computer system.