{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihjtddjby4w7kodonchbziluwplfeaa6rd6cfxb25aadhtvqxqu7a",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mpruumh2dbm2"
  },
  "path": "/t/language-vision-regarding-safety-guarantees/24418?page=3#post_52",
  "publishedAt": "2026-07-03T23:26:24.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "ia0:\n\n> I hope you see that your single contract is made of a logic part (with requirements and guarantees) and a safety part (with requirements).\n\nYes. But I wasn't talking about safety requirements, I was talking about promises. My `sort` example doesn't even have any safety requirements.\n\nSafety requirements are an integral part of the contract. There is only one set of guarantees that the contract has. Safety requirements don't create two versions of the contract, they just provide a boundary to what the contract promises. There are no guarantees at all outside of the boundaries of what safety requirements require. It's just undefined behavior in that scenario.\n\nBut what you are suggesting is something completely different. You keep saying that there should be two different versions of the contract. One for purposes of \"logic\", and a different one for purposes of \"safety\", with different guarantees. That's what I'm disagreeing with.",
  "title": "Language vision regarding safety guarantees"
}