{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidbv6trcg45iidnxs7zmo5dr5qtfibc2u5rlpmlwlv5m54zdh5mta",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mpf5mmqopqp2"
},
"path": "/t/can-noinline-fail-to-prevent-inlining/14324#post_9",
"publishedAt": "2026-06-28T22:16:03.000Z",
"site": "https://discourse.haskell.org",
"textContent": "christiaanb:\n\n> I would even go as far as saying that I would consider it a GHC bug in the treatment of NOINLINE when the semantics of your code are as intended when you use OPAQUE, but not when you use NOINLINE; even in the face of unsafePerformIO.\n\nIs that true? If NOINLINE intentionally doesnt prevent inlining with regard to worker/wrapper, then there’s a semantic difference (not a bug) where NOINLINE might inline an unsafePerformIO CAF but OPAQUE doesnt.",
"title": "Can NOINLINE fail to prevent inlining?"
}