// check-pass trait Foo<'a, A>: Iterator { fn bar(&mut self) -> *const [A; N]; } impl<'a, A, I: ?Sized> Foo<'a, A> for I where I: Iterator { fn bar(&mut self) -> *const [A; N] { std::ptr::null() } } fn main() { (0_u8 .. 10).bar::<10_usize>(); }