{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreigaaxrbzpcqcezscbs4ka2xsepnrzzfa7rllmznushdfigugzcy5i",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mn7lgv5ufjk2"
},
"path": "/t/homomorphic-static-analysis/14146#post_14",
"publishedAt": "2026-06-01T06:44:54.000Z",
"site": "https://discourse.haskell.org",
"textContent": "marcosh:\n\n> and every time you have a `Compose (First ...) (Second ...)` you optimize it to a parallel computation\n\nYes, that’s exactly what I tried and which I couldn’t figure out. I need to somehow detect that `Compose (First ...) (Second ...)` is the same as `Compose (First ...) (Fun id (Second ...))` unless I want to hurt Arrow/Profunctor laws and I have no idea how to do that, because I can’t do an equality check on `a -> a`.",
"title": "Homomorphic static analysis"
}