{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreigxgonyqpfvgiurjj62lvi6ruedn3sn3jpz4ugo5wrivwyn5eemdy",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mnb5s6gskyq2"
  },
  "path": "/t/pattern-synonyms-and-type-families/14180#post_7",
  "publishedAt": "2026-06-01T21:53:51.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "ashokkimmel:\n\n> If you require an explicit annotation on the `pattern`, …\n\nI like Adam’s `type` synonym trick. (Should have thought of it myself.) More to the point, I guess ‘promotable’ PattSyns are exactly those for which a `type` syn can be defined. Then …\n\n  * a bit of Template Haskell to make two declarations; or\n  * a bit of cpp.\n\n\n\nIn effect by declaring both, you’re saying: I hereby annotate the PattSyn to make it promotable.",
  "title": "Pattern Synonyms and type families"
}