{
  "$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!"
}