
On 28/01/18 11:26, Merijn Verstraaten wrote:
Ok, so every so often I've seen people bring up that we really should've called ByteString type Bytes to avoid a whole lot of newbie confusion, but we can't change it now, because it'd break everything.
But would it really break everything? What's to stop us from creating a new package "bytes" which is just a copy of the bytestring source with ByteString renamed to Bytes, then turning the bytestring package into a shim that re-exports all of the bytes package with an added type alias "type ByteString = Bytes".
Anything depending on bytestring right now should just compile as is. Sure, we'd probably be stuck with bytestring as shim package for the next 10 years or so while the ecosystem slowly transitions to "bytes", but maintaining a shim package like that should be near zero work and we'd avoid being stuck with this terribly misleading name forever.
Just to add, there are two problems with this proposal. First, there already is a package named 'bytes' [1]. Second, renaming the type and adding a type alias will break all the instances for ByteString in other packages, because Haskell forbids instance declaration for type aliases unless TypeSynonymInstances extension is enabled. [1]: http://hackage.haskell.org/package/bytes