{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidjotojzelycu7wbgtmk7rn6tgkeythdoka2gke57hd5r2opzp2x4",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mn6qn3aszuv2"
},
"path": "/t/pattern-synonyms-and-type-families/14180#post_2",
"publishedAt": "2026-05-31T22:57:10.000Z",
"site": "https://discourse.haskell.org",
"textContent": "dyaitskov:\n\n> `pattern synonyms cannot be promoted`\n\nIn general, the RHS of a PattSyn declaration can be an arbitrarily complex expression (often using `ViewPatterns`), and not necessarily yielding a datatype that’s promotable — that is, the compiler must evaluate the call to find out; possibly it hasn’t yet processed the PattSyn declaration[**]. TFs are already at the bleeding edge of type-trickery. So to me this sounds just too hard.\n\nIf you think this is an enhancement that would benefit the community, I suggest you raise a brief/informal ‘Issue’ on github. I think you’ll need a more persuasive use case than the one you give: I see no real saving or increase in expressivity.\n\n[**] The PattSyn’s signature might itself be given using a TF call. So now we’re invading the compiler’s workstream.",
"title": "Pattern Synonyms and type families"
}