Use this to mark a constructor as usable for implicit calls.
Use this attribute to ensure that values of a struct or union type are not discarded.
Use this attribute to indicate that you wish to initialize a field with a mutable reference type.
Use this attribute to make an Objective-C interface method optional.
Use this attribute to indicate that a shared module constructor does not depend on any other module constructor being run first. This avoids errors on cyclic module constructors.
Use this attribute to specify that a global symbol should be emitted with weak linkage. This is primarily useful in defining library functions that can be overridden by user code, though it can also be used with shared and static variables too.
This module contains UDA's (User Defined Attributes) either used in the runtime or special UDA's recognized by compiler.