{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreibmdrnrsw2nx4ld5ipi6hevcpzbeplougqlx2h5vtwiwd2s5vehbm",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mge2kepxfaz2"
},
"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"
}