Note that there exist different trait models. In the original trait model, Stateless Traits [1,2], traits only define methods, but not instance variables. Stateful Traits [3] extends this model and lets traits define state. Freezable Traits [4] extend stateless traits with a visibility mechanism. In the context of this paper when we use trait we mean Stateless trait. The reader unfamiliar with traits may read Appendix A for a rapid introduction to stateless traits.
~
CASSOU, Damien, DUCASSE, Stéphane and WUYTS, Roel, 2009. Traits at work: The design of a new trait-based stream library. Computer Languages, Systems & Structures. 1 April 2009. Vol. 35, no. 1, p. 2–20. DOI 10.1016/j.cl.2008.05.004.