Dag Odenhall | 4 Sep 13:53 2013

Proposal: undeprecate Data.ByteString.Lazy.Builder

…and deprecate Data.ByteString.Builder. Why?

  • It would be more consistent with Data.Text.Lazy.Builder
  • It does in fact build lazy bytestrings
  • But most importantly, Data.ByteString.Builder is not available in the version shipped with current GHC or Haskell Platform!

I fear this last point will force a lot of ugly #ifdefs for code that wants to support a range of versions in the future. A common goal is to support the last three major GHC versions. This would mean we can't start to use Data.ByteString.Builder unconditionally before GHC 7.12, and neither can we use Data.ByteString.Lazy.Builder unconditionally if it is dropped before that or DEPRECATED warnings are added and we want to build without warnings.

On the other hand, if you want to support three GHC versions back it still means you can't use Builder without blaze-builder before 7.10. Perhaps we should just pretend that Builder never made it into 7.6, because 7.8 will be the first version with Data.ByteString.Builder?


Libraries mailing list
Libraries <at> haskell.org