#![feature(lang_items)]

#[lang = "sized"]
trait Sized {}

pub struct A<T>(T);

pub trait B {
    type C;
}

// ------
// swap these two items

impl B for i32 {
    type C = Weird<i32>;
}

pub struct Weird<T>(A<(T,)>);

// ------

trait Foo {}

impl Foo for Weird<i32> {}

fn main() {}