The following typechecks: ```scala trait TS { type T = Int } trait T { self: TS => type T def lift(x: Int): T = x } ``` But this variant doesn't: ```scala trait T { self: { type T = Int } => type T def lift(x: Int): T = x // error: expected T, found: Int } ``` The two should behave the same.