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