the trait cannot require that `Self : Sized`
Example:
```
trait T: Clone {}
struct TImpl {}
impl T for TImpl {}
fn main() {
let a: Box<T> = Box::new(TImpl{});
}
```
This is because `Clone` requires `Sized`. Imagine `v: Vec<Box<T>>` and `let x = v[0].clone()`, what is the size of `x` since it is not boxed?
Workaround: Implement a trait `BoxedClone` so `clone` returns a boxed variant of the object.