// We must not allow this with our current setup as `T` // is mentioned both in the tail of `Foo` and by another // field. struct Foo(Box, T); fn main() { let x: Foo<[u8; 1]> = Foo(Box::new([2]), [3]); let y: &Foo<[u8]> = &x; //~ ERROR mismatched types assert_eq!(y.0.len(), 1); }