{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreihwbmv6sy7g3iit2pmcvudic2ab2jqlrp2cys2prcgwospklgreka",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mm6yp4pwdlm2"
},
"path": "/t/ann-hsrs-ergonomic-haskell-bindings-for-rust/14129#post_3",
"publishedAt": "2026-05-19T07:19:43.000Z",
"site": "https://discourse.haskell.org",
"textContent": "Thank you for the reply and warm words!\n\nIt’s a little bit of debt and a hack, mostly done to unblock myself, coupled with a little bit of laziness and AI slop. I kind of want to completely rewrite the Sized codepaths, which would include better enum types.\n\nIn the v0.1 implementation of hsrs, I’ve decided to take the naive approach and use borsh exclusively for compound types, in which case we allocate objects on the heap. I realized that at some point I wanted a completely different code path for Sized types, (since we can completely avoid heap allocations), and decided to accept the C FFI types as they were.\n\nThere are two core things I want to land in 0.2 – avoiding heap allocation for Sized types, and, by extension, richer trivial types (including enum types).",
"title": "[ANN] hsrs -- Ergonomic Haskell Bindings for Rust"
}