Introduction
Traits let you share code between classes easily without repeating yourself.
When you want to add the same method to many classes without inheritance.
When different classes need similar behavior but don't share a parent class.
When you want to organize reusable code in small pieces.
When you want to avoid duplicating code in multiple places.