A mixin is apt when you're adding some behavior to your class. e.g. the ability to enumerate in case of a collection type. You can mixin as many sets of behavior into your class as you want. Its a nice way to reuse common code ; you basically get a bunch of methods for free. A decorator on the other hand is more of a sneaky interceptor. It exposes the same public interface as the target object, co
