You can do it with an extra layer of indirection:

```rust
trait SeedInput { ... }
impl SeedInput for u32 { ... }
impl<'self> SeedInput for &'self [u32] { ... }
impl<I: SeedInput> SeedableRng<I> for MT19937Rng { ... }
```

It does require callers to `use SeedInput` though :(