{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreicl7ermq3fd2grvdbbal4rjoufdhfgkdj7wxzey3el6u7zlv2atve",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mnwzequ4lzy2"
},
"path": "/t/final-call-for-ghc-string-interpolation-proposal/14234#post_7",
"publishedAt": "2026-06-10T15:05:54.000Z",
"site": "https://discourse.haskell.org",
"textContent": "brandonchinn178:\n\n> Manual interpolation (e.g. `<>`, `show`, `unwords`, etc.) is annoying, especially for strings with a lot of interpolation. It’s hard to see the overall structure of the string, especially when building up a `Text`: [..]\n\n`Data.ByteString.Builder` does manual interpolation better, the only reason it’s not a proper replacement is poor typing. If `Builder` could be `UTF8` on the type level, you’d get a perfect chain of\n\n\n \"string\" <> encoder value <> \"string\" <> encoder' value' <> \"string\" <> ..\n\n\n* * *\n\nAlso I don’t see a naive find-replace solution (as in “replace every `${foo}` in string with value at `foo`”) in the “Motivation” section.",
"title": "Final call for GHC String Interpolation proposal!"
}