## minimized code ```Scala trait Foo { self => type M def apply(prog: (h: self.type) => h.M): M = prog(this) } ``` ## expectation The above code example type checks. When replacing `self.type` with `this.type` I am getting the following error: ``` type M is not a member of <refinement> ``` However, I expect `self.type` and `this.type` to be the same.