This paper uses traits for metaclass programming Uniform and safe metaclass composition (Stéphane Ducasse, Nathanael Schärli, Roel Wuyts) http://www.iam.unibe.ch/~scg/Archive/Papers/Duca05ySafeMetaclassTrait.pdf
So there really should be a singleton trait?