{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreiex7nwbzmcfiluarnacbojuv2ah7exwnlapbarwodwq6cw5qfjqni",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mm7xrvrpcxf2"
  },
  "path": "/t/pre-rfc-improved-ergonomics-for/24336#post_10",
  "publishedAt": "2026-05-19T15:46:04.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "relying on `Try` doesn't add any real complexity IMO. It's the equivalent of `.map(|x| try { x? })` rather than `.map(|x| x)`. And feels safer to me right now (vs. simple coercion) as it requires the type author to have specifically approved the conversion.\n\nYes, inside my own codebase I can handle this fine but I'm loathe to include any `Option<Result<!,E>>` etc. in a public API. At that point I push the \"pain\" onto anyone downstream who now needs to add a map to almost every call. So I end up with `Option<Result<(), E>>` and a note in the docs that this _should_ never be `Some(Ok(_))` with no actual compiler guarantees on that (something else for me to think about during code-review, sad for never, and stops users being able to `let(Err(e)) = ignore_blocking(e)?`).",
  "title": "Pre-RFC improved ergonomics for `!`"
}