This article describes a Scala design pattern in which traits provide stackable modifications to underlying core classes or traits. One way to use Scala's traits is as stackable modifications. In this pattern, a trait (or class) can play one of three roles: the base, a core, or a stackable. The base trait (or abstract class) defines an abstract interface that all the cores and stackables extend, a