Traits
A trait is defined as an abstract type that is used in the parametric types BinaryTrait, Positive, and Negative. You may assign any data type to the positive/negative trait type.
For the sake of readability, there are predefined aliases to Positive and Negative types. For example, Can is the same type as Positive.  See Using custom prefixes for more information.

Interface Contracts
The positive side of a trait is usually associated with a set of interface contracts.

Composite Traits
A composite trait is one that exhibits the characteristics of all of its underlying traits. The underlying interface contracts are applicable as well.
