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