By making the lang-item `index` not equal what it is in core: ``` rust #[lang = "index"] trait Index { // ... fn index<'a>(&'a self) -> &'a Self::Output; } ``` This causes the assertion: ``` assertion failed: `left == right` (left: `1`, right: `2`) ``` If instead you change it to a *const instead of an &'a, you get ``` src/lib.rs:11:5: 11:9 error: internal compiler error: cat_expr Errd src/lib.rs:11 a[0] ``` However, if you change from `&'a` to `&'a mut`, nothing happens.