Why a trait instead of a class? A class would be slightly more efficient, but more importantly, a class represents more of the "isA" relationship which is what these feel like. I don't see that these are going to be mixed into other types...