I meant that, since 'R' has been derefed by the time it gets to `RECONCILE`, `R` would be the same as `E`.

e.g.:
```
struct Foo { ... }
trait Bar {
  fn consume(self) { ... }
}
impl Bar for Foo { ... }

// should be an error, unless Foo is Copy
fn consume_foo(foo:&Foo) {
  foo.consume();
}
```

`METHOD-SEARCH` will deref `&Foo` to `Foo` (since that what `Bar` is defined on), and calls `RECONCILE(Foo, Bar, m)`. `E` will be `Foo`. `Foo <: Foo`, so case 1 applies.