“=” considered harmful

Large software systems are crafted by joining disparate code sequences through a common interface . The mechanisms for defining interfaces must be robust, well-understood, and resistant t o change. Ada provides unique mechanisms for defining the interfaces between separated cod e sequences . One of these is the private type. Types exported by Ada packages can be defined as private indicating that the package's client has no visibility to the actual structure of the full typ e definition. Types imported by generic units can be defined as private indicating that the unit does not require visibility to the actual structure of the client's type definition . "=" is an operation provided with these type mechanisms that must be used with care by a package's client and within a generic unit .