{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibmdrnrsw2nx4ld5ipi6hevcpzbeplougqlx2h5vtwiwd2s5vehbm",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mgebb3kecck2"
  },
  "path": "/t/brillo-2-0-production-ready-2d-graphics/13747#post_10",
  "publishedAt": "2026-03-05T18:17:23.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "Deconstructing / pattern matching was already supported as the constructor _was already_ exposed. So they were not even true smart constructors. Given that, I don’t really see a point in wrapping it with a useless `polygon = Polygon`.\n\nAlso, I think graphic programming is one of the few areas where you actually want to know what’s going on under the hood so you don’t accidentally introduce performance bottlenecks.\n\n  * Picture data constructor → Directly handled by Brillo\n  * Function → Some code will be executed to create the Picture. You might be able to implement it in another way that better suits your use-case (lower resolution polygon, shader, bitmap, …)\n\n",
  "title": "Brillo 2.0 - Production ready 2D graphics"
}