#### Note: this error code is no longer emitted by the compiler. `where` clauses must use generic type parameters: it does not make sense to use them otherwise. An example causing this error: ``` trait Foo { fn bar(&self); } #[derive(Copy,Clone)] struct Wrapper { Wrapped: T } impl Foo for Wrapper where Wrapper: Clone { fn bar(&self) { } } ``` This use of a `where` clause is strange - a more common usage would look something like the following: ``` trait Foo { fn bar(&self); } #[derive(Copy,Clone)] struct Wrapper { Wrapped: T } impl Foo for Wrapper where Wrapper: Clone { fn bar(&self) { } } ``` Here, we're saying that the implementation exists on Wrapper only when the wrapped type `T` implements `Clone`. The `where` clause is important because some types will not implement `Clone`, and thus will not get this method. In our erroneous example, however, we're referencing a single concrete type. Since we know for certain that `Wrapper` implements `Clone`, there's no reason to also specify it in a `where` clause.