{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreib4ad7znravye23r76fcb7zap4imsswx34kumtvq6m2bppjiebjhu",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mka6wdzpcb72"
  },
  "path": "/t/modern-haskell-c-translation-approaches/13941#post_9",
  "publishedAt": "2026-04-24T09:09:25.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "Thanks for the clarification, that makes sense.\n\nTo clarify my goal: I am not using obfuscation for security or reverse engineering purposes. Instead, I use it as a way to generate multiple structurally different program variants that still implement the same original algorithm.\n\nStarting from Haskell, the idea is to obtain different semantically equivalent implementations, and then generate different data-dependency graphs from these variants after lowering through LLVM IR.\n\nThe objective is simply to increase the diversity of data-dependency graphs corresponding to the same algorithm, not to analyze obfuscation or reverse engineering.\n\nI do understand that going through C introduces a lot of complexity and may heavily distort the structure, especially given how Haskell is compiled.",
  "title": "Modern Haskell → C translation approaches?"
}