traitLang1{traitExp;traitVisitor{deff(left:Exp):Unit}classEval1extendsVisitor{self:Visitor=>deff(left:Exp)=()}}traitLang2extendsLang1{classEval2extendsEval1{self:Visitor=>}}/*object Main with App { val lang2 = new Lang2 {} val eval = new lang2.Eval2}*/