Traits paper

Was nice to see a formal explanation of traits. My complete ignorance of Smalltalk made a lot of the examples and usages hard to follow.  There’s also some mention of metaclasses that might come in handy.

As they admit at the end, a static type system makes them a lot harder to deal with, so some of the simple treatment here was frustrating. For example, how would you abstract over all the things that implement the `isEmpty()` method (which is bestowed an actual trait in the paper)? In, say, Fortress traits are types, so I could use the normal expression-type abstraction: `emptyChecker(x: HasIsEmpty): Boolean = x.isEmpty()`