{
  "$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"
}