derived types subtypes separate compilation child units compilable specifications overloadable/redefinable operators automatic garbage collection can be turned on or off for individual types.