{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidd3wlritso2ome4f2yydfn4ulzx4gthl7vdwvhv36ap74rjras7a",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3ml3azgk6nao2"
},
"path": "/t/too-strict-orphan-rules-e0117/24221#post_2",
"publishedAt": "2026-05-05T03:16:31.000Z",
"site": "https://internals.rust-lang.org",
"tags": [
"Unsoundness in `Pin`"
],
"textContent": "My immediate concern is that `unsafe` code may be making assumptions about the nonexistence of foreign impls; only a select few types (`&T`, `&mut T`, `Box<T>`, `Pin<T>`) allow foreign impls. (These types are called “fundamental” types.)\n\nThose fundamental types have contributed to unsoundness in `std` in the past: Unsoundness in `Pin`\n\nI can’t actually think of any soundness problems that would ensue from allowing arbitrary users to implement foreign traits for `Option<LocalType>`, but unless someone exhaustively proves that this is sound, I will remain suspicious.",
"title": "Too strict orphan rules E0117"
}